Type Parameters:
V - the generic type of the value
T - the generic type of the concrete tree node
All Superinterfaces:
Serializable

public interface ITree<V,T> extends Serializable
The interface ITree represents a generic tree structure
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addChild(T child)
    Adds the given child to this tree node
    void
    addChild(T child, int index)
    Adds the given child to this tree node
    void
    addChildren(@NonNull Collection<T> children)
    Adds all the given children to this tree node
    void
    Removes all the descendants from this tree node
    void
    Removes all the children from this tree node
    boolean
    contains(T treeNode)
    Checks if the given ITree object is a descendant of this tree node
    boolean
    containsAll(@NonNull Collection<T> treeNodes)
    Checks if the given Collection object of ITree objects are descendants of this tree node
    Find all ITree objects that have the same value as the given value
    findByValue(V value)
    Find the first ITree object that have the same value as the given value
    Returns all siblings of this node in the parent's children list.
    getChildAt(int index)
    Gets the child tree node from the given index
    int
    Gets the child count of this tree node
    int
    Gets the index of the given child in this tree node
    Gets the children of this tree node
    Gets the optional display value of this tree node
    int
    Returns the distance from the root to this node.
    Returns the next sibling of this node in the parent's children list.
    Gets the parent of this tree node
    Returns the previous sibling of this node in the parent's children list.
    Gets the root object
    Gets the value of this tree node
    boolean
    Checks if this tree node has children
    boolean
    Checks if this node has a next sibling
    boolean
    Checks if this tree node has a parent
    boolean
    Checks if this node has a previous sibling
    boolean
    isAncestor(T treeNode)
    Checks if this ITree is an ancestor ITree object
    boolean
    isChild(T treeNode)
    Checks if the given tree node is a child of this tree node
    boolean
    isDescendant(T treeNode)
    Checks if this ITree is a descendant ITree object
    boolean
    Checks if this node is a leaf
    boolean
    Checks if this node is a node
    boolean
    Checks if this ITree is the root ITree object
    boolean
    move(T newParentTreeNode)
    Moves this ITree object to the new given parent ITree object
    void
    removeChild(T child)
    Removes the given child from this tree node
    void
    Removes all the children from this tree node
    void
    removeChildren(@NonNull Collection<T> children)
    Removes all the given children from this tree node
    void
    Sets the children of this tree node
    void
    setDisplayValue(String displayValue)
    Sets the optional display value of this tree node
    void
    setLeaf(boolean leaf)
    Sets the flag that indicates if this tree node is a node or a leaf
    void
    setParent(T parent)
    Sets the parent of this tree node
    void
    setValue(V value)
    Sets the value of this tree node
    Traverse this node and adds all descendant with this included in to a List object
    Traverse this node and adds all descendant with this included in to a Collection object
  • Method Details

    • addChild

      void addChild(T child)
      Adds the given child to this tree node
      Parameters:
      child - the child
    • addChild

      void addChild(T child, int index)
      Adds the given child to this tree node
      Parameters:
      child - the child
      index - the index of the child to insert
    • addChildren

      void addChildren(@NonNull @NonNull Collection<T> children)
      Adds all the given children to this tree node
      Parameters:
      children - the children to add
    • getAllSiblings

      Collection<T> getAllSiblings()
      Returns all siblings of this node in the parent's children list. Returns null if this node is the root
      Returns:
      Returns all siblings of this node or null if this node is the root
    • getPreviousSibling

      T getPreviousSibling()
      Returns the previous sibling of this node in the parent's children list. Returns null if this node is the root or is the parent's first child
      Returns:
      the next sibling of this node or null if this node is the root or is the parent's last child
    • getNextSibling

      T getNextSibling()
      Returns the next sibling of this node in the parent's children list. Returns null if this node is the root or is the parent's last child
      Returns:
      the next sibling of this node or null if this node is the root or is the parent's last child
    • getChildCount

      int getChildCount()
      Gets the child count of this tree node
      Returns:
      the child count
    • getChildren

      Collection<T> getChildren()
      Gets the children of this tree node
      Returns:
      the children
    • getChildAt

      Optional<T> getChildAt(int index)
      Gets the child tree node from the given index
      Parameters:
      index - the index of the child to get
      Returns:
      an Optional object with the child tree node from the given index
    • getChildIndex

      int getChildIndex(T child)
      Gets the index of the given child in this tree node
      Parameters:
      child - the child to resolve the index
      Returns:
      the index of the given child in this tree node
    • setChildren

      void setChildren(Collection<T> children)
      Sets the children of this tree node
      Parameters:
      children - the new children
    • getDisplayValue

      String getDisplayValue()
      Gets the optional display value of this tree node
      Returns:
      the display value
    • setDisplayValue

      void setDisplayValue(String displayValue)
      Sets the optional display value of this tree node
      Parameters:
      displayValue - the new optional display value
    • getLevel

      int getLevel()
      Returns the distance from the root to this node. Returns 0 if this node is the root
      Returns:
      the level from this node
    • getParent

      T getParent()
      Gets the parent of this tree node
      Returns:
      the parent
    • setParent

      void setParent(T parent)
      Sets the parent of this tree node
      Parameters:
      parent - the new parent
    • getRoot

      T getRoot()
      Gets the root object
      Returns:
      the root object
    • getValue

      V getValue()
      Gets the value of this tree node
      Returns:
      the value
    • setValue

      void setValue(V value)
      Sets the value of this tree node
      Parameters:
      value - the new value
    • hasChildren

      boolean hasChildren()
      Checks if this tree node has children
      Returns:
      true, if this tree node has children otherwise false
    • isChild

      boolean isChild(T treeNode)
      Checks if the given tree node is a child of this tree node
      Parameters:
      treeNode - the tree node to check
      Returns:
      true, if the given tree node is a child of this tree node otherwise false
    • hasNextSibling

      boolean hasNextSibling()
      Checks if this node has a next sibling
      Returns:
      true, if this node has a next sibling otherwise false
    • hasParent

      boolean hasParent()
      Checks if this tree node has a parent
      Returns:
      true, if this tree node has a parent otherwise false
    • hasPreviousSibling

      boolean hasPreviousSibling()
      Checks if this node has a previous sibling
      Returns:
      true, if this node has a previous sibling otherwise false
    • isLeaf

      boolean isLeaf()
      Checks if this node is a leaf
      Returns:
      true, if this node is a leaf otherwise false
    • setLeaf

      void setLeaf(boolean leaf)
      Sets the flag that indicates if this tree node is a node or a leaf
      Parameters:
      leaf - The flag to set that indicates if this tree node is a node or a leaf
    • isAncestor

      boolean isAncestor(T treeNode)
      Checks if this ITree is an ancestor ITree object
      Parameters:
      treeNode - the tree node to check
      Returns:
      true, if this ITree is an ancestor ITree object otherwise false
    • isDescendant

      boolean isDescendant(T treeNode)
      Checks if this ITree is a descendant ITree object
      Parameters:
      treeNode - the tree node to check
      Returns:
      true, if this ITree is a descendant ITree object otherwise false
    • move

      boolean move(T newParentTreeNode)
      Moves this ITree object to the new given parent ITree object
      Parameters:
      newParentTreeNode - the new parent tree node
      Returns:
      true, if this ITree object was moved to the new given parent ITree object otherwise false
    • isNode

      boolean isNode()
      Checks if this node is a node
      Returns:
      true, if this node is a node otherwise false
    • isRoot

      boolean isRoot()
      Checks if this ITree is the root ITree object
      Returns:
      true, if this ITree is the root ITree object otherwise false
    • removeChild

      void removeChild(T child)
      Removes the given child from this tree node
      Parameters:
      child - the child
    • clearChildren

      void clearChildren()
      Removes all the children from this tree node
    • clearAll

      void clearAll()
      Removes all the descendants from this tree node
    • removeChildren

      void removeChildren()
      Removes all the children from this tree node
    • removeChildren

      void removeChildren(@NonNull @NonNull Collection<T> children)
      Removes all the given children from this tree node
      Parameters:
      children - the children to remove
    • findAllByValue

      Collection<T> findAllByValue(V value)
      Find all ITree objects that have the same value as the given value
      Parameters:
      value - the value for the search process
      Returns:
      a Collection object with all found occurrences that have the same value as the given value
    • findByValue

      T findByValue(@NonNull V value)
      Find the first ITree object that have the same value as the given value
      Parameters:
      value - the value for the search process
      Returns:
      the first ITree object that have the same value as the given value
    • contains

      boolean contains(T treeNode)
      Checks if the given ITree object is a descendant of this tree node
      Parameters:
      treeNode - the tree node to check
      Returns:
      true if the given ITree object is a descendant of this tree node otherwise false
    • containsAll

      boolean containsAll(@NonNull @NonNull Collection<T> treeNodes)
      Checks if the given Collection object of ITree objects are descendants of this tree node
      Parameters:
      treeNodes - the tree nodes
      Returns:
      true if the given Collection of tree node objects are descendants of this tree node otherwise false
    • toList

      List<T> toList()
      Traverse this node and adds all descendant with this included in to a List object
      Returns:
      a List object with this node and add all descendant
    • traverse

      Collection<T> traverse()
      Traverse this node and adds all descendant with this included in to a Collection object
      Returns:
      a Collection object with this node and add all descendant