Class TreePreOrderIterable<TItem,​TIdentifier>

  • Type Parameters:
    TItem - Type of the items in the tree.
    TIdentifier - Type of the identifier that identifiers the items in the tree.
    All Implemented Interfaces:
    Iterable<TItem>

    public class TreePreOrderIterable<TItem,​TIdentifier>
    extends Object
    implements Iterable<TItem>
    An iterable that iterates over a tree-like graph, starting at a given node. Throws an exception in case the graph is not a tree, thus also preventing endless cycles when the graph is cyclic.
    Since:
    7.0.0
    Author:
    XIMA MEDIA GmbH
    • Constructor Detail

      • TreePreOrderIterable

        public TreePreOrderIterable​(TItem startItem,
                                    ITreeAccessor<TItem,​TIdentifier> treeAccessor)
        Returns a new iterable over the items in the tree starting at the given item.
        Parameters:
        startItem - Item where to start the traversal. This item is included in the traversal.
        treeAccessor - Handler for accessing the children of a node, and its identifier
    • Method Detail

      • toList

        public static <TItem> List<TItem> toList​(TItem startItem,
                                                 ITreeAccessor<TItem,​?> treeAccessor)
        Iterates over the node and its children, and returns a list of all iterated nodes.
        Type Parameters:
        TItem - Type of the items in the tree.
        Parameters:
        startItem - Node where to start the traversal. This item is included in the returned list.
        treeAccessor - Handler for accessing the children of a node, and its identifier.
        Returns:
        A list with the given start item and all its children.