Class WikiPage

java.lang.Object
org.apache.wiki.WikiPage
All Implemented Interfaces:
java.lang.Cloneable, java.lang.Comparable<Page>, Page
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

    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 page
    int hashCode()
    boolean hasMetadata()
    Returns true 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)
    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.

    Methods inherited from class java.lang.Object

    finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • 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. Use WikiPage(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 Details

    • getName

      public java.lang.String getName()
      Returns the name of the page.
      Specified by:
      getName in interface Page
      Returns:
      The page name.
    • 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 interface Page
      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 interface Page
      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 interface Page
      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 interface Page
      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 interface Page
      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 interface Page
      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 interface Page
      Parameters:
      version - The version number
    • getVersion

      public int getVersion()
      Returns the version that this WikiPage instance represents.
      Specified by:
      getVersion in interface Page
      Returns:
      the version number of this page.
    • getSize

      public long getSize()
      Returns the size of the page.
      Specified by:
      getSize in interface Page
      Returns:
      the size of the page.
      Since:
      2.1.109
    • setSize

      public void setSize​(long size)
      Sets the size. Typically called by the provider only.
      Specified by:
      setSize in interface Page
      Parameters:
      size - The size of the page.
      Since:
      2.1.109
    • getAcl

      public Acl getAcl()
      Returns the Acl for this page. May return null, in case there is no Acl defined, or it has not yet been set by setAcl(Acl).
      Specified by:
      getAcl in interface Page
      Returns:
      The access control list. May return null, if there is no acl.
    • setAcl

      @Deprecated 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 invoke AclManager.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 invoke AclManager.setPermissions(Page, org.apache.wiki.api.core.Acl).
      Specified by:
      setAcl in interface Page
      Parameters:
      acl - The Acl to set
    • setAuthor

      public void setAuthor​(java.lang.String author)
      Sets the author of the page. Typically called only by the provider.
      Specified by:
      setAuthor in interface Page
      Parameters:
      author - The author name.
    • getAuthor

      public java.lang.String getAuthor()
      Returns author name, or null, if no author has been defined.
      Specified by:
      getAuthor in interface Page
      Returns:
      Author name, or possibly null.
    • getWiki

      public java.lang.String getWiki()
      Returns the wiki name for this page
      Specified by:
      getWiki in interface Page
      Returns:
      The name of the wiki.
    • invalidateMetadata

      public void invalidateMetadata()
      This method will remove all metadata from the page.
      Specified by:
      invalidateMetadata in interface Page
    • hasMetadata

      public boolean hasMetadata()
      Returns true 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 interface Page
      Returns:
      true, if the page has metadata.
    • setHasMetadata

      public void setHasMetadata()
      Sets the metadata flag to true. Never call.
      Specified by:
      setHasMetadata in interface Page
    • toString

      public java.lang.String toString()
      Returns a debug-suitable version of the page.
      Overrides:
      toString in class java.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).
      Specified by:
      clone in interface Page
      Overrides:
      clone in class java.lang.Object
      Returns:
      A deep clone of the WikiPage
    • 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 interface java.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 class java.lang.Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class java.lang.Object