Package de.xima.fc.workflow
Class TreePreOrderIterable<TItem,TIdentifier>
java.lang.Object
de.xima.fc.workflow.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>
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 Summary
ConstructorsConstructorDescriptionTreePreOrderIterable(Iterable<TItem> startItems, ITreeAccessor<TItem, TIdentifier> treeAccessor) Returns a new iterable over the items in the tree starting at the given item.TreePreOrderIterable(Iterable<TItem> startItems, ITreeAccessor<TItem, TIdentifier> treeAccessor, boolean limitRecursion) Returns a new iterable over the items in the tree starting at the given item.TreePreOrderIterable(TItem startItem, ITreeAccessor<TItem, TIdentifier> treeAccessor) Returns a new iterable over the items in the tree starting at the given item.TreePreOrderIterable(TItem startItem, ITreeAccessor<TItem, TIdentifier> treeAccessor, boolean limitRecursion) Returns a new iterable over the items in the tree starting at the given item. -
Method Summary
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
TreePreOrderIterable
public TreePreOrderIterable(Iterable<TItem> startItems, ITreeAccessor<TItem, TIdentifier> treeAccessor) Returns a new iterable over the items in the tree starting at the given item.- Parameters:
startItems- Root items where to start the traversal. These items are included in the traversal.treeAccessor- Handler for accessing the children of a node, and its identifier
-
TreePreOrderIterable
public TreePreOrderIterable(Iterable<TItem> startItems, ITreeAccessor<TItem, TIdentifier> treeAccessor, boolean limitRecursion) Returns a new iterable over the items in the tree starting at the given item.- Parameters:
startItems- Root items where to start the traversal. These items are included in the traversal.treeAccessor- Handler for accessing the children of a node, and its identifierlimitRecursion- Iftrue, stops iterating when an item is encountered for the second time (as determined byObject.hashCode(),Object.equals(Object)) and throws anIllegalStateException.- Since:
- 7.2.1
-
TreePreOrderIterable
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
-
TreePreOrderIterable
public TreePreOrderIterable(TItem startItem, ITreeAccessor<TItem, TIdentifier> treeAccessor, boolean limitRecursion) 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 identifierlimitRecursion- Iftrue, stops iterating when an item is encountered for the second time (as determined byObject.hashCode(),Object.equals(Object)) and throws anIllegalStateException.- Since:
- 7.2.1
-
-
Method Details
-
iterator
-
toList
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.
-