# Package org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization

- Class Summary
  Class | Description
  --- | ---
  AdjacentToIncidentStrategy | This strategy looks for vertex- and value-emitting steps followed by a `CountGlobalStep` and replaces the pattern with an edge- or property-emitting step followed by a `CountGlobalStep`.
  ByModulatorOptimizationStrategy | This strategy looks for standard traversals in by-modulators and replaces them with more optimized traversals (e.g.
  CountStrategy | This strategy optimizes any occurrence of `CountGlobalStep` followed by an `IsStep`.
  EarlyLimitStrategy | This strategy looks for `RangeGlobalStep`s that can be moved further left in the traversal and thus be applied earlier.
  EarlyLimitStrategyProcessTest |
  FilterRankingStrategy | `FilterRankingStrategy` reorders filter- and order-steps according to their rank.
  IdentityRemovalStrategy | `IdentityRemovalStrategy` looks for `IdentityStep` instances and removes them.
  IncidentToAdjacentStrategy | This strategy looks for `.outE().inV()`, `.inE().outV()` and `.bothE().otherV()` and replaces these step sequences with `.out()`, `.in()` or `.both()` respectively.
  IncidentToAdjacentStrategyProcessTest |
  InlineFilterStrategy | This strategy analyzes filter-steps with child traversals that themselves are pure filters.
  LazyBarrierStrategy | `LazyBarrierStrategy` is an OLTP-only strategy that automatically inserts a `NoOpBarrierStep` after every `FlatMapStep` if neither path-tracking nor partial path-tracking is required, and the next step is not the traversal's last step or a `Barrier`.
  MatchPredicateStrategy | `MatchWhereStrategy` will fold any post-`where()` step that maintains a traversal constraint into `match()`.
  OrderLimitStrategy | `OrderLimitStrategy` is an OLAP strategy that folds a `RangeGlobalStep` into a preceding `OrderGlobalStep`.
  PathProcessorStrategy | `PathProcessStrategy` is an OLAP strategy that does its best to turn non-local children in `where()` and `select()` into local children by inlining components of the non-local child.
  PathRetractionStrategy |
  ProductiveByStrategy | Takes an argument of `by()` and wraps it `CoalesceStep` so that the result is either the initial `Traversal` argument or `null`.
  ProductiveByStrategy.Builder |
  RepeatUnrollStrategy | `RepeatUnrollStrategy` is an OLTP-only strategy that unrolls any `RepeatStep` if it uses a constant number of loops (`times(x)`) and doesn't emit intermittent elements.

Copyright © 2013–2022 Apache Software Foundation. All rights reserved.