java.lang.Object
org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy<TraversalStrategy.OptimizationStrategy>
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.GValueReductionStrategy
All Implemented Interfaces:
Serializable, Comparable<Class<? extends TraversalStrategy>>, TraversalStrategy<TraversalStrategy.OptimizationStrategy>, TraversalStrategy.OptimizationStrategy

Converts placeholder steps that hold GValue objects to their concrete implementations. While not an optimization in and of itself, the GValue functionality in general, provides a mechanism for traversal optimization so falls in this category. In addition, converting to concrete steps at this stage also allows provider optimization strategies to execute on concrete steps, rather than step interfaces. Concrete steps are much easier to reason about and keep strategy application simple for the vast majority of providers.

Providers hoping to do more advanced optimizations that require GValue objects to be present for their strategies will need to remove GValueReductionStrategy and offer their own mechanism for converting step placeholders to concrete steps. ProviderGValueReductionStrategy is a base class for helping with this need.

See Also: