Package org.apache.wiki.attachment

# Class Attachment

java.lang.Object
org.apache.wiki.WikiPage
org.apache.wiki.attachment.Attachment

All Implemented Interfaces:
  `Cloneable`, `Comparable<Page>`, `Attachment`, `Page`

Direct Known Subclasses:
  `DynamicAttachment`

public class Attachment extends WikiPage implements Attachment
Describes an attachment. Attachments are actually derivatives of a WikiPage, since they do actually have a WikiName as well.

## Field Summary

### Fields inherited from interface org.apache.wiki.api.core.Page

`ALIAS, AUTHOR, CHANGENOTE, DESCRIPTION, REDIRECT, VIEWCOUNT`

## Constructor Summary

Constructors
Constructor
Description
`Attachment(Engine engine, String parentPage, String fileName)`
Creates a new attachment.
`Attachment(WikiEngine engine, String parentPage, String fileName)`
Deprecated.
kept for compatibility with page/attachment providers not using public API.

## Method Summary

Modifier and Type
Method
Description
`String`
`getFileName()`
Returns the file name of the attachment.
`String`
`getParentName()`
Returns the name of the parent of this Attachment, i.e. the page which contains this attachment.
`boolean`
`isCacheable()`
Returns true, if this attachment can be cached by the user agent.
`void`
`setCacheable(boolean value)`
Sets this attachment to be cacheable or not.
`void`
`setFileName(String name)`
Sets the file name of this attachment.
`String`
`toString()`
Returns a human-readable, only-debugging-suitable description.

### Methods inherited from class org.apache.wiki.WikiPage

`clone, compareTo, equals, getAcl, getAttribute, getAttributes, getAuthor, getLastModified, getName, getSize, getVersion, getWiki, hashCode, hasMetadata, invalidateMetadata, removeAttribute, setAcl, setAcl, setAttribute, setAuthor, setHasMetadata, setLastModified, setSize, setVersion`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.lang.Comparable

`compareTo`

### Methods inherited from interface org.apache.wiki.api.core.Page

`clone, getAcl, getAttribute, getAttributes, getAuthor, getLastModified, getName, getSize, getVersion, getWiki, hasMetadata, invalidateMetadata, removeAttribute, setAcl, setAttribute, setAuthor, setHasMetadata, setLastModified, setSize, setVersion`

## Constructor Details

### Attachment

public Attachment(Engine engine, String parentPage, String fileName)
Creates a new attachment. The final name of the attachment will be a synthesis of the parent page name and the file name.

Parameters:
  `engine` - The Engine which is hosting this attachment.
  `parentPage` - The page which will contain this attachment.
  `fileName` - The file name for the attachment.

### Attachment

@Deprecated public Attachment(WikiEngine engine, String parentPage, String fileName)
Deprecated.
kept for compatibility with page/attachment providers not using public API. Use `Attachment(Engine, String, String)` instead.
Creates a new attachment. The final name of the attachment will be a synthesis of the parent page name and the file name.

Parameters:
  `engine` - The Engine which is hosting this attachment.
  `parentPage` - The page which will contain this attachment.
  `fileName` - The file name for the attachment.

## Method Details

### toString

public String toString()
Returns a human-readable, only-debugging-suitable description.

Overrides:
  `toString` in class `WikiPage`
Returns:
  A debugging string

### getFileName

public String getFileName()
Returns the file name of the attachment.

Specified by:
  `getFileName` in interface `Attachment`
Returns:
  A String with the file name.

### setFileName

public void setFileName(String name)
Sets the file name of this attachment.

Specified by:
  `setFileName` in interface `Attachment`
Parameters:
  `name` - The name of the attachment. Must be a legal file name without the path.

### getParentName

public String getParentName()
Returns the name of the parent of this Attachment, i.e. the page which contains this attachment.

Specified by:
  `getParentName` in interface `Attachment`
Returns:
  String depicting the parent of the attachment.

### isCacheable

public boolean isCacheable()
Returns true, if this attachment can be cached by the user agent. By default attachments are cacheable.

Specified by:
  `isCacheable` in interface `Attachment`
Returns:
  False, if the attachment should not be cached by the user agent.
Since:
  2.5.34

### setCacheable

public void setCacheable(boolean value)
Sets this attachment to be cacheable or not. This mostly concerns things like DynamicAttachments, but it may be useful for certain AttachmentProviders as well.

Specified by:
  `setCacheable` in interface `Attachment`
Parameters:
  `value` - True or false, depending on whether you want this attachment to be cacheable or not.
Since:
  2.5.34