Package org.apache.wiki
Class WikiPage
- java.lang.Object
-
- org.apache.wiki.WikiPage
-
- Direct Known Subclasses:
Attachment
public class WikiPage extends java.lang.Object implements Page
Simple wrapper class for the Wiki page attributes. The Wiki page content is moved around in Strings, though.
-
-
Field Summary
-
Fields inherited from interface org.apache.wiki.api.core.Page
ALIAS, AUTHOR, CHANGENOTE, DESCRIPTION, REDIRECT, VIEWCOUNT
-
-
Constructor Summary
Constructors Constructor Description WikiPage(Engine engine, java.lang.String name)
Create a new WikiPage using a given engine and name.WikiPage(WikiEngine engine, java.lang.String name)
Deprecated.kept for compatibility with page/attachment providers not using public API.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description WikiPage
clone()
Creates a deep clone of a WikiPage.int
compareTo(Page page)
Compares a page with another by name using the defined PageNameComparator.boolean
equals(java.lang.Object o)
A page is equal to another page if its name and version are equal.Acl
getAcl()
Returns the Acl for this page.<T> T
getAttribute(java.lang.String key)
A WikiPage may have a number of attributes, which might or might not be available.java.util.Map<java.lang.String,java.lang.Object>
getAttributes()
Returns the full attributes Map, in case external code needs to iterate through the attributes.java.lang.String
getAuthor()
Returns author name, or null, if no author has been defined.java.util.Date
getLastModified()
Returns the date when this page was last modified.java.lang.String
getName()
Returns the name of the page.long
getSize()
Returns the size of the page.int
getVersion()
Returns the version that this WikiPage instance represents.java.lang.String
getWiki()
Returns the wiki name for this pageint
hashCode()
boolean
hasMetadata()
Returnstrue
if the page has valid metadata; that is, it has been parsed.void
invalidateMetadata()
This method will remove all metadata from the page.<T> T
removeAttribute(java.lang.String key)
Removes an attribute from the page, if it exists.void
setAcl(Acl acl)
Sets the Acl for this page.void
setAcl(Acl acl)
Deprecated.void
setAttribute(java.lang.String key, java.lang.Object attribute)
Sets an metadata attribute.void
setAuthor(java.lang.String author)
Sets the author of the page.void
setHasMetadata()
Sets the metadata flag to true.void
setLastModified(java.util.Date date)
Sets the last modification date.void
setSize(long size)
Sets the size.void
setVersion(int version)
Sets the page version.java.lang.String
toString()
Returns a debug-suitable version of the page.
-
-
-
Constructor Detail
-
WikiPage
public WikiPage(Engine engine, java.lang.String name)
Create a new WikiPage using a given engine and name.- Parameters:
engine
- The Engine that owns this page.name
- The name of the page.
-
WikiPage
@Deprecated public WikiPage(WikiEngine engine, java.lang.String name)
Deprecated.kept for compatibility with page/attachment providers not using public API. UseWikiPage(Engine, String)
instead.Create a new WikiPage using a given engine and name.- Parameters:
engine
- The Engine that owns this page.name
- The name of the page.
-
-
Method Detail
-
getName
public java.lang.String getName()
Returns the name of the page.
-
getAttribute
public <T> T getAttribute(java.lang.String key)
A WikiPage may have a number of attributes, which might or might not be available. Typically attributes are things that do not need to be stored with the wiki page to the page repository, but are generated on-the-fly. A provider is not required to save them, but they can do that if they really want.- Specified by:
getAttribute
in interfacePage
- Parameters:
key
- The key using which the attribute is fetched- Returns:
- The attribute. If the attribute has not been set, returns null.
-
setAttribute
public void setAttribute(java.lang.String key, java.lang.Object attribute)
Sets an metadata attribute.- Specified by:
setAttribute
in interfacePage
- Parameters:
key
- The key for the attribute used to fetch the attribute later on.attribute
- The attribute value- See Also:
getAttribute(String)
-
getAttributes
public java.util.Map<java.lang.String,java.lang.Object> getAttributes()
Returns the full attributes Map, in case external code needs to iterate through the attributes.- Specified by:
getAttributes
in interfacePage
- Returns:
- The attribute Map. Please note that this is a direct reference, not a copy.
-
removeAttribute
public <T> T removeAttribute(java.lang.String key)
Removes an attribute from the page, if it exists.- Specified by:
removeAttribute
in interfacePage
- Parameters:
key
- The key for the attribute- Returns:
- If the attribute existed, returns the object.
- Since:
- 2.1.111
-
getLastModified
public java.util.Date getLastModified()
Returns the date when this page was last modified.- Specified by:
getLastModified
in interfacePage
- Returns:
- The last modification date
-
setLastModified
public void setLastModified(java.util.Date date)
Sets the last modification date. In general, this is only changed by the provider.- Specified by:
setLastModified
in interfacePage
- Parameters:
date
- The date
-
setVersion
public void setVersion(int version)
Sets the page version. In general, this is only changed by the provider.- Specified by:
setVersion
in interfacePage
- Parameters:
version
- The version number
-
getVersion
public int getVersion()
Returns the version that this WikiPage instance represents.- Specified by:
getVersion
in interfacePage
- Returns:
- the version number of this page.
-
getSize
public long getSize()
Returns the size of the page.
-
setSize
public void setSize(long size)
Sets the size. Typically called by the provider only.
-
getAcl
public Acl getAcl()
Returns the Acl for this page. May returnnull
, in case there is no Acl defined, or it has not yet been set bysetAcl(Acl)
.
-
setAcl
@Deprecated public void setAcl(Acl acl)
Deprecated.Sets the Acl for this page. Note that method does not persist the Acl itself to back-end storage or in page markup; it merely sets the internal field that stores the Acl. To persist the Acl, callers should invokeAclManager.setPermissions(Page, org.apache.wiki.api.core.Acl)
.- Parameters:
acl
- The Acl to set- See Also:
setAcl(org.apache.wiki.api.core.Acl)
-
setAcl
public void setAcl(Acl acl)
Sets the Acl for this page. Note that method does not persist the Acl itself to back-end storage or in page markup; it merely sets the internal field that stores the Acl. To persist the Acl, callers should invokeAclManager.setPermissions(Page, org.apache.wiki.api.core.Acl)
.
-
setAuthor
public void setAuthor(java.lang.String author)
Sets the author of the page. Typically called only by the provider.
-
getAuthor
public java.lang.String getAuthor()
Returns author name, or null, if no author has been defined.
-
getWiki
public java.lang.String getWiki()
Returns the wiki name for this page
-
invalidateMetadata
public void invalidateMetadata()
This method will remove all metadata from the page.- Specified by:
invalidateMetadata
in interfacePage
-
hasMetadata
public boolean hasMetadata()
Returnstrue
if the page has valid metadata; that is, it has been parsed. Note that this method is a kludge to support our pre-3.0 metadata system, and as such will go away with the new API.- Specified by:
hasMetadata
in interfacePage
- Returns:
- true, if the page has metadata.
-
setHasMetadata
public void setHasMetadata()
Sets the metadata flag to true. Never call.- Specified by:
setHasMetadata
in interfacePage
-
toString
public java.lang.String toString()
Returns a debug-suitable version of the page.- Overrides:
toString
in classjava.lang.Object
- Returns:
- A debug string.
-
clone
public WikiPage clone()
Creates a deep clone of a WikiPage. Strings are not cloned, since they're immutable. Attributes are not cloned, only the internal HashMap (so if you modify the contents of a value of an attribute, these will reflect back to everyone).
-
compareTo
public int compareTo(Page page)
Compares a page with another by name using the defined PageNameComparator. If the same name, compares their versions.- Specified by:
compareTo
in interfacejava.lang.Comparable<Page>
- Parameters:
page
- The page to compare against- Returns:
- -1, 0 or 1
-
equals
public boolean equals(java.lang.Object o)
A page is equal to another page if its name and version are equal.- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-