Class ContentTree

java.lang.Object
com.atlassian.confluence.pages.ContentTree

public class ContentTree extends Object
A graph of ContentNode. Stores all content that the user has permission to view, in the form of nodes representing a hierarchy of pages (as they can be nested), and a list of blog posts.
  • Constructor Details

    • ContentTree

      public ContentTree()
    • ContentTree

      public ContentTree(ContentNode rootNode)
      Create a ContentTree with only a single root nodel
      Parameters:
      rootNode - the only root node in this content tree
    • ContentTree

      public ContentTree(List<ContentNode> rootContentNodes)
  • Method Details

    • getRootNodes

      public List<ContentNode> getRootNodes()
    • isRootNode

      public boolean isRootNode(ContentNode node)
    • filter

      public void filter(List<String> ids)
      Remove all nodes in this tree whose id does not match the list passed in
      Parameters:
      ids - List of String representations of the ids of pages
    • filter

      public void filter(Set<Long> includedIds, Set<Long> excludedIds)
      Filters the tree according to included and excluded ids of content nodes. Nodes are removed if:
      1. no ancestor is included in includedIds
      2. their closest ancestor mentioned in either list is in excludedIds
      3. they are in excludedIds

      Any nodes included whose immediate parents are not included are moved to the root.

      Any root nodes not mentioned at all are excluded.

      If we were to make this handle hidden pages too then we'd add an extra rule:

      1. they are not visible to the current user and any of their siblings are in excludedIds

      Parameters:
      includedIds - ids of pages to include (including their descendants except where exclusions apply)
      excludedIds - ids of pages to exclude (their descendants are also excluded except where more specific inclusions apply)
    • addRootNode

      public void addRootNode(ContentNode contentNode)
    • removeNode

      public void removeNode(ContentNode contentNode)
    • getAllContentNodes

      public List<ContentNode> getAllContentNodes()
    • getPage

      public Page getPage(long pageId)
      Parameters:
      pageId - the id of the required page
      Returns:
      the Page from the ContentTree or null if there is no page with that id in the ContentTree
    • getPages

      public List<Page> getPages()
      Returns:
      all the pages associated with the nodes in this tree
    • getBlogPosts

      public List<BlogPost> getBlogPosts()
    • setBlogPosts

      public void setBlogPosts(List<BlogPost> blogPosts)
    • size

      public int size()
      Returns:
      the number of nodes in this tree
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object