public interface TraversalSource extends Cloneable
TraversalSource
is used to create Traversal
instances.
A traversal source can generate any number of Traversal
instances.
A traversal source is primarily composed of a Graph
and a TraversalStrategies
.
Various withXXX
-based methods are used to configure the traversal strategies (called "configurations").
Various other methods (dependent on the traversal source type) will then generate a traversal given the graph and configured strategies (called "spawns").
A traversal source is immutable in that fluent chaining of configurations create new traversal sources.
This is unlike Traversal
and GraphComputer
, where chained methods configure the same instance.
Every traversal source implementation must maintain two constructors to enable proper reflection-based construction.
TraversalSource(Graph)
and TraversalSource(Graph,TraversalStrategies)
Modifier and Type | Interface and Description |
---|---|
static interface |
TraversalSource.Builder<C extends TraversalSource>
Deprecated.
As of release 3.2.0. Please use
Graph.traversal(Class) . |
Modifier and Type | Method and Description |
---|---|
TraversalSource |
clone()
The clone-method should be used to create immutable traversal sources with each call to a configuration method.
|
Graph |
getGraph()
Get the {@link Graph) associated with this traversal source.
|
TraversalStrategies |
getStrategies()
Get the
TraversalStrategies associated with this traversal source. |
default TraversalSource |
withComputer()
Add the standard
GraphComputer of the graph that will be used to execute the traversal. |
default TraversalSource |
withComputer(Class<? extends GraphComputer> graphComputerClass)
Add a
GraphComputer class used to execute the traversal. |
default TraversalSource |
withComputer(Computer computer)
Add a
Function that will generate a GraphComputer from the Graph that will be used to execute the traversal. |
default TraversalSource |
withoutStrategies(Class<? extends TraversalStrategy>... traversalStrategyClasses)
Remove an arbitrary collection of
TraversalStrategy classes from the traversal source. |
default <A> TraversalSource |
withSack(A initialValue)
Add a sack to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSack(A initialValue,
BinaryOperator<A> mergeOperator)
Add a sack to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSack(A initialValue,
UnaryOperator<A> splitOperator)
Add a sack to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSack(A initialValue,
UnaryOperator<A> splitOperator,
BinaryOperator<A> mergeOperator)
Add a sack to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSack(Supplier<A> initialValue)
Add a sack to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSack(Supplier<A> initialValue,
BinaryOperator<A> mergeOperator)
Add a sack to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSack(Supplier<A> initialValue,
UnaryOperator<A> splitOperator)
Add a sack to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSack(Supplier<A> initialValue,
UnaryOperator<A> splitOperator,
BinaryOperator<A> mergeOperator)
Add a sack to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSideEffect(String key,
A initialValue)
Add a sideEffect to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSideEffect(String key,
A initialValue,
BinaryOperator<A> reducer)
Add a sideEffect to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSideEffect(String key,
Supplier<A> initialValue)
Add a sideEffect to be used throughout the life of a spawned
Traversal . |
default <A> TraversalSource |
withSideEffect(String key,
Supplier<A> initialValue,
BinaryOperator<A> reducer)
Add a sideEffect to be used throughout the life of a spawned
Traversal . |
default TraversalSource |
withStrategies(TraversalStrategy... traversalStrategies)
Add an arbitrary collection of
TraversalStrategy instances to the traversal source. |
TraversalStrategies getStrategies()
TraversalStrategies
associated with this traversal source.Graph getGraph()
default TraversalSource withStrategies(TraversalStrategy... traversalStrategies)
TraversalStrategy
instances to the traversal source.traversalStrategies
- a colleciton of traversal strategies to adddefault TraversalSource withoutStrategies(Class<? extends TraversalStrategy>... traversalStrategyClasses)
TraversalStrategy
classes from the traversal source.traversalStrategyClasses
- a collection of traversal strategy classes to removedefault TraversalSource withComputer(Computer computer)
Function
that will generate a GraphComputer
from the Graph
that will be used to execute the traversal.
This adds a VertexProgramStrategy
to the strategies.computer
- a builder to generate a graph computer from the graphdefault TraversalSource withComputer(Class<? extends GraphComputer> graphComputerClass)
GraphComputer
class used to execute the traversal.
This adds a VertexProgramStrategy
to the strategies.graphComputerClass
- the graph computer classdefault TraversalSource withComputer()
GraphComputer
of the graph that will be used to execute the traversal.
This adds a VertexProgramStrategy
to the strategies.default <A> TraversalSource withSideEffect(String key, Supplier<A> initialValue, BinaryOperator<A> reducer)
Traversal
.
This adds a SideEffectStrategy
to the strategies.key
- the key of the sideEffectinitialValue
- a supplier that produces the initial value of the sideEffectreducer
- a reducer to merge sideEffect mutations into a single resultdefault <A> TraversalSource withSideEffect(String key, A initialValue, BinaryOperator<A> reducer)
Traversal
.
This adds a SideEffectStrategy
to the strategies.key
- the key of the sideEffectinitialValue
- the initial value of the sideEffectreducer
- a reducer to merge sideEffect mutations into a single resultdefault <A> TraversalSource withSideEffect(String key, Supplier<A> initialValue)
Traversal
.
This adds a SideEffectStrategy
to the strategies.key
- the key of the sideEffectinitialValue
- a supplier that produces the initial value of the sideEffectdefault <A> TraversalSource withSideEffect(String key, A initialValue)
Traversal
.
This adds a SideEffectStrategy
to the strategies.key
- the key of the sideEffectinitialValue
- the initial value of the sideEffectdefault <A> TraversalSource withSack(Supplier<A> initialValue, UnaryOperator<A> splitOperator, BinaryOperator<A> mergeOperator)
Traversal
.
This adds a SackStrategy
to the strategies.initialValue
- a supplier that produces the initial value of the sideEffectsplitOperator
- the sack split operatormergeOperator
- the sack merge operatordefault <A> TraversalSource withSack(A initialValue, UnaryOperator<A> splitOperator, BinaryOperator<A> mergeOperator)
Traversal
.
This adds a SackStrategy
to the strategies.initialValue
- the initial value of the sideEffectsplitOperator
- the sack split operatormergeOperator
- the sack merge operatordefault <A> TraversalSource withSack(A initialValue)
Traversal
.
This adds a SackStrategy
to the strategies.initialValue
- the initial value of the sideEffectdefault <A> TraversalSource withSack(Supplier<A> initialValue)
Traversal
.
This adds a SackStrategy
to the strategies.initialValue
- a supplier that produces the initial value of the sideEffectdefault <A> TraversalSource withSack(Supplier<A> initialValue, UnaryOperator<A> splitOperator)
Traversal
.
This adds a SackStrategy
to the strategies.initialValue
- a supplier that produces the initial value of the sideEffectsplitOperator
- the sack split operatordefault <A> TraversalSource withSack(A initialValue, UnaryOperator<A> splitOperator)
Traversal
.
This adds a SackStrategy
to the strategies.initialValue
- the initial value of the sideEffectsplitOperator
- the sack split operatordefault <A> TraversalSource withSack(Supplier<A> initialValue, BinaryOperator<A> mergeOperator)
Traversal
.
This adds a SackStrategy
to the strategies.initialValue
- a supplier that produces the initial value of the sideEffectmergeOperator
- the sack merge operatordefault <A> TraversalSource withSack(A initialValue, BinaryOperator<A> mergeOperator)
Traversal
.
This adds a SackStrategy
to the strategies.initialValue
- the initial value of the sideEffectmergeOperator
- the sack merge operatorTraversalSource clone()
TraversalStrategies
, mutate the cloned strategies accordingly,
and then return the cloned traversal source.Copyright © 2013–2016 Apache Software Foundation. All rights reserved.