Interface TraversalStrategies
- 
- All Superinterfaces:
- Cloneable,- Iterable<TraversalStrategy<?>>,- Serializable
 - All Known Implementing Classes:
- DefaultTraversalStrategies,- EmptyTraversalStrategies
 
 public interface TraversalStrategies extends Serializable, Cloneable, Iterable<TraversalStrategy<?>> ATraversalmaintains a set ofTraversalStrategyinstances within a TraversalStrategies object. TraversalStrategies are responsible for compiling a traversal prior to its execution.- Author:
- Marko A. Rodriguez (http://markorodriguez.com), Matthias Broecheler (me@matthiasb.com)
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Interface Description static classTraversalStrategies.GlobalCache
 - 
Field SummaryFields Modifier and Type Field Description static List<Class<? extends TraversalStrategy>>STRATEGY_CATEGORIES
 - 
Method SummaryAll Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description TraversalStrategiesaddStrategies(TraversalStrategy<?>... strategies)Add all the providedTraversalStrategyinstances to the current collection.TraversalStrategiesclone()default <T extends TraversalStrategy>
 Optional<T>getStrategy(Class<T> traversalStrategyClass)Return theTraversalStrategyinstance associated with the provided class.Iterator<TraversalStrategy<?>>iterator()Return anIteratorof theTraversalStrategyinstances.TraversalStrategiesremoveStrategies(Class<? extends TraversalStrategy>... strategyClasses)Remove all the providedTraversalStrategyclasses from the current collection.static Set<TraversalStrategy<?>>sortStrategies(Set<TraversalStrategy<?>> strategies)Sorts the list of provided strategies such that theTraversalStrategy.applyPost()andTraversalStrategy.applyPrior()dependencies are respected.default List<TraversalStrategy<?>>toList()Return an immutable list of theTraversalStrategyinstances.static voidvisit(Map<Class<? extends TraversalStrategy>,Set<Class<? extends TraversalStrategy>>> dependencyMap, List<Class<? extends TraversalStrategy>> sortedStrategyClasses, Set<Class<? extends TraversalStrategy>> seenStrategyClases, List<Class<? extends TraversalStrategy>> unprocessedStrategyClasses, Class<? extends TraversalStrategy> strategyClass)- 
Methods inherited from interface java.lang.IterableforEach, spliterator
 
- 
 
- 
- 
- 
Field Detail- 
STRATEGY_CATEGORIESstatic final List<Class<? extends TraversalStrategy>> STRATEGY_CATEGORIES 
 
- 
 - 
Method Detail- 
toListdefault List<TraversalStrategy<?>> toList() Return an immutable list of theTraversalStrategyinstances.
 - 
iteratorIterator<TraversalStrategy<?>> iterator() Return anIteratorof theTraversalStrategyinstances.- Specified by:
- iteratorin interface- Iterable<TraversalStrategy<?>>
 
 - 
getStrategydefault <T extends TraversalStrategy> Optional<T> getStrategy(Class<T> traversalStrategyClass) Return theTraversalStrategyinstance associated with the provided class.- Type Parameters:
- T- the strategy class type
- Parameters:
- traversalStrategyClass- the class of the strategy to get
- Returns:
- an optional containing the strategy instance or not
 
 - 
addStrategiesTraversalStrategies addStrategies(TraversalStrategy<?>... strategies) Add all the providedTraversalStrategyinstances to the current collection. When all the provided strategies have been added, the collection is resorted. If a strategy class is found to already be defined, it is removed and replaced by the newly added one.- Parameters:
- strategies- the traversal strategies to add
- Returns:
- the newly updated/sorted traversal strategies collection
 
 - 
removeStrategiesTraversalStrategies removeStrategies(Class<? extends TraversalStrategy>... strategyClasses) Remove all the providedTraversalStrategyclasses from the current collection. When all the provided strategies have been removed, the collection is resorted.- Parameters:
- strategyClasses- the traversal strategies to remove by their class
- Returns:
- the newly updated/sorted traversal strategies collection
 
 - 
cloneTraversalStrategies clone() 
 - 
sortStrategiesstatic Set<TraversalStrategy<?>> sortStrategies(Set<TraversalStrategy<?>> strategies) Sorts the list of provided strategies such that theTraversalStrategy.applyPost()andTraversalStrategy.applyPrior()dependencies are respected. Note, that the order may not be unique.- Parameters:
- strategies- the traversal strategies to sort
 
 - 
visitstatic void visit(Map<Class<? extends TraversalStrategy>,Set<Class<? extends TraversalStrategy>>> dependencyMap, List<Class<? extends TraversalStrategy>> sortedStrategyClasses, Set<Class<? extends TraversalStrategy>> seenStrategyClases, List<Class<? extends TraversalStrategy>> unprocessedStrategyClasses, Class<? extends TraversalStrategy> strategyClass) 
 
- 
 
-