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, wait
Methods 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.
-