org.apache.wiki.attachment
Class AttachmentManager

java.lang.Object
  extended by org.apache.wiki.attachment.AttachmentManager

public class AttachmentManager
extends Object

Provides facilities for handling attachments. All attachment handling goes through this class.

The AttachmentManager provides a facade towards the current WikiAttachmentProvider that is in use. It is created by the WikiEngine as a singleton object, and can be requested through the WikiEngine.

Since:
1.9.28

Field Summary
static String CACHE_NAME
          Name of the page cache.
static int DEFAULT_CACHECAPACITY
          The capacity of the cache, if you want something else, tweak ehcache.xml.
static String PROP_ALLOWEDEXTENSIONS
          A space-separated list of attachment types which can be uploaded
static String PROP_FORDBIDDENEXTENSIONS
          A space-separated list of attachment types which cannot be uploaded
static String PROP_MAXSIZE
          The maximum size of attachments that can be uploaded.
static String PROP_PROVIDER
          The property name for defining the attachment provider class name.
 
Constructor Summary
AttachmentManager(WikiEngine engine, Properties props)
          Creates a new AttachmentManager.
 
Method Summary
 boolean attachmentsEnabled()
          Returns true, if attachments are enabled and running.
 void deleteAttachment(Attachment att)
          Deletes all versions of the given attachment.
 void deleteVersion(Attachment att)
          Deletes the given attachment version.
 Collection getAllAttachments()
          Returns a collection of Attachments, containing each and every attachment that is in this Wiki.
 Attachment getAttachmentInfo(String name)
          Gets info on a particular attachment, latest version.
 Attachment getAttachmentInfo(String name, int version)
          Gets info on a particular attachment with the given version.
 Attachment getAttachmentInfo(WikiContext context, String attachmentname)
          Figures out the full attachment name from the context and attachment name.
 Attachment getAttachmentInfo(WikiContext context, String attachmentname, int version)
          Figures out the full attachment name from the context and attachment name.
 InputStream getAttachmentStream(Attachment att)
          Finds a (real) attachment from the repository as a stream.
 InputStream getAttachmentStream(WikiContext ctx, Attachment att)
          Returns an attachment stream using the particular WikiContext.
 WikiAttachmentProvider getCurrentProvider()
          Returns the current attachment provider.
 DynamicAttachment getDynamicAttachment(String name)
          Finds a DynamicAttachment.
 List getVersionHistory(String attachmentName)
          Returns a list of versions of the attachment.
 boolean hasAttachments(WikiPage wikipage)
          Returns true, if the page has any attachments at all.
 Collection listAttachments(WikiPage wikipage)
          Returns the list of attachments associated with a given wiki page.
 void storeAttachment(Attachment att, File source)
          Stores an attachment that lives in the given file.
 void storeAttachment(Attachment att, InputStream in)
          Stores an attachment directly from a stream.
 void storeDynamicAttachment(WikiContext ctx, DynamicAttachment att)
          Stores a dynamic attachment.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROP_PROVIDER

public static final String PROP_PROVIDER
The property name for defining the attachment provider class name.

See Also:
Constant Field Values

PROP_MAXSIZE

public static final String PROP_MAXSIZE
The maximum size of attachments that can be uploaded.

See Also:
Constant Field Values

PROP_ALLOWEDEXTENSIONS

public static final String PROP_ALLOWEDEXTENSIONS
A space-separated list of attachment types which can be uploaded

See Also:
Constant Field Values

PROP_FORDBIDDENEXTENSIONS

public static final String PROP_FORDBIDDENEXTENSIONS
A space-separated list of attachment types which cannot be uploaded

See Also:
Constant Field Values

CACHE_NAME

public static final String CACHE_NAME
Name of the page cache.

See Also:
Constant Field Values

DEFAULT_CACHECAPACITY

public static final int DEFAULT_CACHECAPACITY
The capacity of the cache, if you want something else, tweak ehcache.xml.

See Also:
Constant Field Values
Constructor Detail

AttachmentManager

public AttachmentManager(WikiEngine engine,
                         Properties props)
Creates a new AttachmentManager. Note that creation will never fail, but it's quite likely that attachments do not function.

DO NOT CREATE an AttachmentManager on your own, unless you really know what you're doing. Just use WikiEngine.getAttachmentManager() if you're making a module for JSPWiki.

Parameters:
engine - The wikiengine that owns this attachment manager.
props - A list of properties from which the AttachmentManager will seek its configuration. Typically this is the "jspwiki.properties".
Method Detail

attachmentsEnabled

public boolean attachmentsEnabled()
Returns true, if attachments are enabled and running.

Returns:
A boolean value indicating whether attachment functionality is enabled.

getAttachmentInfo

public Attachment getAttachmentInfo(String name)
                             throws ProviderException
Gets info on a particular attachment, latest version.

Parameters:
name - A full attachment name.
Returns:
Attachment, or null, if no such attachment exists.
Throws:
ProviderException - If something goes wrong.

getAttachmentInfo

public Attachment getAttachmentInfo(String name,
                                    int version)
                             throws ProviderException
Gets info on a particular attachment with the given version.

Parameters:
name - A full attachment name.
version - A version number.
Returns:
Attachment, or null, if no such attachment or version exists.
Throws:
ProviderException - If something goes wrong.

getAttachmentInfo

public Attachment getAttachmentInfo(WikiContext context,
                                    String attachmentname)
                             throws ProviderException
Figures out the full attachment name from the context and attachment name.

Parameters:
context - The current WikiContext
attachmentname - The file name of the attachment.
Returns:
Attachment, or null, if no such attachment exists.
Throws:
ProviderException - If something goes wrong.

getAttachmentInfo

public Attachment getAttachmentInfo(WikiContext context,
                                    String attachmentname,
                                    int version)
                             throws ProviderException
Figures out the full attachment name from the context and attachment name.

Parameters:
context - The current WikiContext
attachmentname - The file name of the attachment.
version - A particular version.
Returns:
Attachment, or null, if no such attachment or version exists.
Throws:
ProviderException - If something goes wrong.

listAttachments

public Collection listAttachments(WikiPage wikipage)
                           throws ProviderException
Returns the list of attachments associated with a given wiki page. If there are no attachments, returns an empty Collection.

Parameters:
wikipage - The wiki page from which you are seeking attachments for.
Returns:
a valid collection of attachments.
Throws:
ProviderException - If there was something wrong in the backend.

hasAttachments

public boolean hasAttachments(WikiPage wikipage)
Returns true, if the page has any attachments at all. This is a convinience method.

Parameters:
wikipage - The wiki page from which you are seeking attachments for.
Returns:
True, if the page has attachments, else false.

getAttachmentStream

public InputStream getAttachmentStream(Attachment att)
                                throws IOException,
                                       ProviderException
Finds a (real) attachment from the repository as a stream.

Parameters:
att - Attachment
Returns:
An InputStream to read from. May return null, if attachments are disabled.
Throws:
IOException - If the stream cannot be opened
ProviderException - If the backend fails due to some other reason.

getAttachmentStream

public InputStream getAttachmentStream(WikiContext ctx,
                                       Attachment att)
                                throws ProviderException,
                                       IOException
Returns an attachment stream using the particular WikiContext. This method should be used instead of getAttachmentStream(Attachment), since it also allows the DynamicAttachments to function.

Parameters:
ctx - The Wiki Context
att - The Attachment to find
Returns:
An InputStream. May return null, if attachments are disabled. You must take care of closing it.
Throws:
ProviderException - If the backend fails due to some reason
IOException - If the stream cannot be opened

storeDynamicAttachment

public void storeDynamicAttachment(WikiContext ctx,
                                   DynamicAttachment att)
Stores a dynamic attachment. Unlike storeAttachment(), this just stores the attachment in the memory.

Parameters:
ctx - A WikiContext
att - An attachment to store

getDynamicAttachment

public DynamicAttachment getDynamicAttachment(String name)
Finds a DynamicAttachment. Normally, you should just use getAttachmentInfo(), since that will find also DynamicAttachments.

Parameters:
name - The name of the attachment to look for
Returns:
An Attachment, or null.
See Also:
getAttachmentInfo(String)

storeAttachment

public void storeAttachment(Attachment att,
                            File source)
                     throws IOException,
                            ProviderException
Stores an attachment that lives in the given file. If the attachment did not exist previously, this method will create it. If it did exist, it stores a new version.

Parameters:
att - Attachment to store this under.
source - A file to read from.
Throws:
IOException - If writing the attachment failed.
ProviderException - If something else went wrong.

storeAttachment

public void storeAttachment(Attachment att,
                            InputStream in)
                     throws IOException,
                            ProviderException
Stores an attachment directly from a stream. If the attachment did not exist previously, this method will create it. If it did exist, it stores a new version.

Parameters:
att - Attachment to store this under.
in - InputStream from which the attachment contents will be read.
Throws:
IOException - If writing the attachment failed.
ProviderException - If something else went wrong.

getVersionHistory

public List getVersionHistory(String attachmentName)
                       throws ProviderException
Returns a list of versions of the attachment.

Parameters:
attachmentName - A fully qualified name of the attachment.
Returns:
A list of Attachments. May return null, if attachments are disabled.
Throws:
ProviderException - If the provider fails for some reason.

getAllAttachments

public Collection getAllAttachments()
                             throws ProviderException
Returns a collection of Attachments, containing each and every attachment that is in this Wiki.

Returns:
A collection of attachments. If attachments are disabled, will return an empty collection.
Throws:
ProviderException - If something went wrong with the backend

getCurrentProvider

public WikiAttachmentProvider getCurrentProvider()
Returns the current attachment provider.

Returns:
The current provider. May be null, if attachments are disabled.

deleteVersion

public void deleteVersion(Attachment att)
                   throws ProviderException
Deletes the given attachment version.

Parameters:
att - The attachment to delete
Throws:
ProviderException - If something goes wrong with the backend.

deleteAttachment

public void deleteAttachment(Attachment att)
                      throws ProviderException
Deletes all versions of the given attachment.

Parameters:
att - The Attachment to delete.
Throws:
ProviderException - if something goes wrong with the backend.


Copyright © {inceptionYear}-2014 The Apache Software Foundation. All rights reserved.