Module gen.tree

Interface ITreeNode<V,​T extends ITreeNode<V,​T>>

  • Type Parameters:
    V - the generic type of the value
    T - the generic type of the concrete tree node
    All Superinterfaces:
    io.github.astrapi69.design.pattern.visitor.Acceptable<io.github.astrapi69.design.pattern.visitor.Visitor<T>>, java.io.Serializable
    All Known Subinterfaces:
    IBaseTreeNode<V,​K,​T>
    All Known Implementing Classes:
    BaseTreeNode, TreeNode

    public interface ITreeNode<V,​T extends ITreeNode<V,​T>>
    extends java.io.Serializable, io.github.astrapi69.design.pattern.visitor.Acceptable<io.github.astrapi69.design.pattern.visitor.Visitor<T>>
    The Interface ITreeNode holds the children in a Collection object
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default void accept​(@NonNull io.github.astrapi69.design.pattern.visitor.Visitor<T> visitor)
      default void addChild​(T child)
      Adds the given child
      default void addChildren​(@NonNull java.util.Collection<T> children)
      Adds all the given children
      default void clearAll()
      Removes all the descendants
      default void clearChildren()
      Removes all the children
      default boolean contains​(T treeNode)
      Checks if the given ITreeNode object is a descendant of this tree node
      default boolean containsAll​(@NonNull java.util.Collection<T> treeNodes)
      Checks if the given Collection object of ITreeNode objects are descendants of this tree node
      default java.util.Collection<T> findAllByValue​(V value)
      Find all ITreeNode objects that have the same value as the given value
      default T findByValue​(V value)
      Find all ITreeNode objects that have the same value as the given value
      default java.util.Collection<T> getAllSiblings()
      Returns all siblings of this node in the parent's children list.
      default int getChildCount()
      Gets the child count.
      java.util.Collection<T> getChildren()
      Gets the children.
      java.lang.String getDisplayValue()
      Gets the optional display value.
      default int getLevel()
      Returns the distance from the root to this node.
      default T getNextSibling()
      Returns the next sibling of this node in the parent's children list.
      T getParent()
      Gets the parent.
      default T getPreviousSibling()
      Returns the previous sibling of this node in the parent's children list.
      default T getRoot()
      Gets the root object
      V getValue()
      Gets the value.
      default boolean hasChildren()
      Checks for children.
      default boolean hasParent()
      Checks for parent
      boolean isLeaf()
      Checks if is leaf.
      default boolean isNode()
      Checks if is node.
      default boolean isRoot()
      Checks if this ITreeNode is the root ITreeNode object
      default void removeChild​(T child)
      Removes the child.
      default void removeChildren()
      Removes all the children
      default void removeChildren​(@NonNull java.util.Collection<T> children)
      Removes all the given children
      void setChildren​(java.util.Collection<T> children)
      Sets the children.
      void setDisplayValue​(java.lang.String displayValue)
      Sets the optional display value.
      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.
      void setValue​(V value)
      Sets the value.
      default java.util.List<T> toList()
      Traverse this node and adds all descendant with this included in to a List object
      default java.util.Collection<T> traverse()
      Traverse this node and adds all descendant with this included in to a Collection object
    • Method Detail

      • addChild

        default void addChild​(T child)
        Adds the given child
        Parameters:
        child - the child
      • addChildren

        default void addChildren​(@NonNull
                                 @NonNull java.util.Collection<T> children)
        Adds all the given children
        Parameters:
        children - the children to add
      • getAllSiblings

        default java.util.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

        default 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

        default 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

        default int getChildCount()
        Gets the child count.
        Returns:
        the child count
      • getChildren

        java.util.Collection<T> getChildren()
        Gets the children.
        Returns:
        the children
      • setChildren

        void setChildren​(java.util.Collection<T> children)
        Sets the children.
        Parameters:
        children - the new children
      • getDisplayValue

        java.lang.String getDisplayValue()
        Gets the optional display value.
        Returns:
        the display value
      • setDisplayValue

        void setDisplayValue​(java.lang.String displayValue)
        Sets the optional display value.
        Parameters:
        displayValue - the new optional display value
      • getLevel

        default 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.
        Returns:
        the parent
      • setParent

        void setParent​(T parent)
        Sets the parent.
        Parameters:
        parent - the new parent
      • getRoot

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

        V getValue()
        Gets the value.
        Returns:
        the value
      • setValue

        void setValue​(V value)
        Sets the value.
        Parameters:
        value - the new value
      • hasChildren

        default boolean hasChildren()
        Checks for children.
        Returns:
        true, if successful
      • hasParent

        default boolean hasParent()
        Checks for parent
        Returns:
        true, if successful
      • isLeaf

        boolean isLeaf()
        Checks if is leaf.
        Returns:
        true, if is leaf
      • 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
      • isNode

        default boolean isNode()
        Checks if is node.
        Returns:
        true, if is node
      • removeChild

        default void removeChild​(T child)
        Removes the child.
        Parameters:
        child - the child
      • clearChildren

        default void clearChildren()
        Removes all the children
      • clearAll

        default void clearAll()
        Removes all the descendants
      • removeChildren

        default void removeChildren()
        Removes all the children
      • removeChildren

        default void removeChildren​(@NonNull
                                    @NonNull java.util.Collection<T> children)
        Removes all the given children
        Parameters:
        children - the children to remove
      • accept

        default void accept​(@NonNull
                            @NonNull io.github.astrapi69.design.pattern.visitor.Visitor<T> visitor)
        Specified by:
        accept in interface io.github.astrapi69.design.pattern.visitor.Acceptable<V>
      • findAllByValue

        default java.util.Collection<T> findAllByValue​(V value)
        Find all ITreeNode 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

        default T findByValue​(@NonNull
                              V value)
        Find all ITreeNode 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
      • contains

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

        default boolean containsAll​(@NonNull
                                    @NonNull java.util.Collection<T> treeNodes)
        Checks if the given Collection object of ITreeNode objects are descendants of this tree node
        Parameters:
        treeNodes - the children to add
        Returns:
        true if the given Collection object of ITreeNode objects are descendants of this tree node otherwise false
      • toList

        default java.util.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

        default java.util.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