Class Page

All Implemented Interfaces:
Searchable, Content, Addressable, ContentTypeAware, HasLinkWikiMarkup, Hierarchical<Page>, Versioned, RelatableEntity, EditableLabelable, Labelable, ContentConvertible, Spaced, Serializable, Cloneable, Comparable<ContentEntityObject>

public class Page extends AbstractPage implements Hierarchical<Page>, ContentConvertible
Represents a Page within Confluence.
See Also:
  • Field Details

  • Constructor Details

    • Page

      public Page()
  • Method Details

    • setPosition

      public void setPosition(Integer position)
    • incPosition

      public void incPosition()
    • getPosition

      public Integer getPosition()
    • isRootLevel

      public boolean isRootLevel()
      Specified by:
      isRootLevel in interface Hierarchical<Page>
    • getParent

      public Page getParent()
      Specified by:
      getParent in interface Hierarchical<Page>
    • setParent

      @Deprecated public void setParent(Page parent)
      Deprecated.
      Since 1.1. Do not call this method. It exists solely for hibernate to use. Use #setParentPage instead. I would have made this method private, but CGLIB was complaining.
      Specified by:
      setParent in interface Hierarchical<Page>
    • setParentPage

      public void setParentPage(Page parent)
      Public setter that makes sure that the parent page is valid
      Parameters:
      parent - the page to set as this page's parent
      Throws:
      IllegalArgumentException - if the parent page is in a different space.
    • getChildren

      public List<Page> getChildren()
      Specified by:
      getChildren in interface Hierarchical<Page>
    • hasChildren

      public boolean hasChildren()
      Specified by:
      hasChildren in interface Hierarchical<Page>
    • getSortedChildren

      public List<Page> getSortedChildren()
    • setChildren

      public void setChildren(List<Page> children)
      Specified by:
      setChildren in interface Hierarchical<Page>
    • addChild

      public void addChild(Page child)
      Specified by:
      addChild in interface Hierarchical<Page>
    • removeChild

      public void removeChild(Page child)
      Specified by:
      removeChild in interface Hierarchical<Page>
    • isHomePage

      public boolean isHomePage()
    • getType

      public String getType()
      Description copied from class: ContentEntityObject
      An easy name for the type of this content: makes it easy for things like the #contentLink macro to work out what to draw.

      This is a bit of a hack, but it saves heaps of code elsewhere, especially since we tend to get back these objects wrapped in all sorts of Hibernate CGLIB stuff.

      Specified by:
      getType in interface ContentTypeAware
      Specified by:
      getType in class ContentEntityObject
      Returns:
      the content type
    • convertToHistoricalVersion

      public void convertToHistoricalVersion()
      Description copied from interface: Versioned
      Remove all data from the object that does not need to be saved by historical versions. For versioned objects that are persisted, this includes removing associations with other persisted objects that may otherwise cause us to break the expected arity of the database relations.

      When using Hibernate to persist versioned objects, take special care to null any field that might contain a Hibernate-persisted collection, as Hibernate does not allow two different persistent objects to refer to the same persisted collection at the same time.

      Specified by:
      convertToHistoricalVersion in interface Versioned
      Overrides:
      convertToHistoricalVersion in class AbstractPage
    • getNameForComparison

      public String getNameForComparison()
      Description copied from class: ContentEntityObject
      Subclasses should implement this method, giving a String back so that the content can be alphabetically sorted in a mixed-type list of content-entities.
      Overrides:
      getNameForComparison in class SpaceContentEntityObject
    • severParentChildRelationships

      public void severParentChildRelationships()
      sever parent/child relationships
    • remove

      public void remove(PageManager pageManager)
      Sever any homepage
      Overrides:
      remove in class AbstractPage
    • getLinkWikiMarkup

      public String getLinkWikiMarkup()
      Specified by:
      getLinkWikiMarkup in interface HasLinkWikiMarkup
      Returns:
      the wiki markup used to link to this content
    • trash

      public void trash()
      Description copied from class: ContentEntityObject
      places content in trash can
      Overrides:
      trash in class ContentEntityObject
    • getDescendants

      public List<Page> getDescendants()
      Get descendants with "current" state only
      Returns:
      list of descendants
    • getDescendents

      @Deprecated public List<Page> getDescendents()
      Deprecated.
      since 5.5.1. Use getDescendants()
    • getAncestors

      public List<Page> getAncestors()
      Gets the list of ancestors of this page (its parents, and its parents parents, right up to the root level of the containing space). This is more efficient than repeatedly calling getParent() as it does a single join across the ancestors table instead of one query per parent.

      For strange historical reasons, this list is in the opposite order you would expect. The LAST element of the list will be this page's parent.

      Specified by:
      getAncestors in interface Hierarchical<Page>
      Returns:
      the list of ancestors of the page, ordered from the root of the space.
    • setAncestors

      public void setAncestors(List<Page> ancestors)
      This should only ever be set by Hibernate.
    • setSpace

      public void setSpace(Space newSpace)
      Overrides:
      setSpace in class SpaceContentEntityObject
    • isIndexable

      public boolean isIndexable()
      Description copied from class: SpaceContentEntityObject
      pages, blogs etc that aren't not associated with a space (either because they are historical or corrupt) should not be indexed if they are indexed, and returned in search results, they are broken and are therefore useless
      Specified by:
      isIndexable in interface Searchable
      Overrides:
      isIndexable in class SpaceContentEntityObject
    • getContentTypeObject

      public ContentType getContentTypeObject()
      Specified by:
      getContentTypeObject in interface ContentConvertible
      Returns:
      the api ContentType that this ContentConvertible converts to
    • getContentId

      public ContentId getContentId()
      Returns the ContentId for this Page.
      Specified by:
      getContentId in interface ContentConvertible
      Overrides:
      getContentId in class ContentEntityObject
      Returns:
      the ContentId representation of this Page's id
    • shouldConvertToContent

      public boolean shouldConvertToContent()
      Specified by:
      shouldConvertToContent in interface ContentConvertible
      Returns:
      true if the implementer wants to be part of the core API (default value), false otherwise
    • copyLatestVersion

      public Page copyLatestVersion()
      Copy page information
      Returns:
      Since:
      5.10