This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit c39e4cebb3aa187f194fa41bb6832f24feb68be5 Author: Stephen Mallette <stepm...@amazon.com> AuthorDate: Wed Jun 25 14:26:45 2025 -0400 Added javadoc for TraverserRequirement --- .../traversal/traverser/TraverserRequirement.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/TraverserRequirement.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/TraverserRequirement.java index ce7de2deae..791f3fe211 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/TraverserRequirement.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/TraverserRequirement.java @@ -31,14 +31,54 @@ import org.apache.tinkerpop.gremlin.process.traversal.Traverser; */ public enum TraverserRequirement { + /** + * Indicates that the {@link Traverser} maintains a bulk count, which represents the multiplicity of + * traversers being processed. This allows optimization by grouping multiple traversers with the same + * state and treating them as a single entity to reduce computational overhead. + */ BULK, + /** + * Represents a {@link TraverserRequirement} indicating that the traverser must track labeled paths. + * A labeled path is a collection of steps where specific steps have associated labels, enabling + * retrieval of intermediate or final results based on these labels during a traversal.This requirement ensures + * that the traverser has the capability to maintain and access this labeled path information as it progresses + * through the traversal. + */ LABELED_PATH, + /** + * Indicates that a {@link Traverser} supports handling nested loops within a traversal. This requirement is + * relevant for traversals where steps can be executed within the context of multiple, potentially recursive + * loop iterations, enabling complex traversal structures and control flow. + */ NESTED_LOOP, + /** + * Denotes that a traverser is required to carry an arbitrary object as its state. + */ OBJECT, + /** + * Represents a traverser requirement where each traverser instance is guaranteed to have a bulk of one. This + * ensures that the traverser is processed individually and not in aggregated bulk. + */ ONE_BULK, + /** + * Represents the requirement for a traverser to maintain a path of the elements it has visited. This ensures that + * the traverser can track its journey through the traversal graph to support path-based computations. + */ PATH, + /** + * Indicates that a traverser carries a "sack", which is a mutable structure used to hold aggregated or + * intermediate results during the traversal process. This requirement allows steps to both read from and write to + * the sack, enabling computations that span across multiple steps in a traversal. + */ SACK, + /** + * Indicates that a traverser is expected to interact with and leverage side-effects during the traversal process. + * Side-effects are data that are collected, shared, or mutated as part of the traversal. + */ SIDE_EFFECTS, + /** + * Indicates that the traverser is required to support single loop iteration during the traversal. + */ SINGLE_LOOP }