Class 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.
    • 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 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 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. 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 Detail

      • 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.
      • 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.
      • 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.
      • 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