Class AbstractTraverser<T>

    • Field Detail

      • t

        protected T t
    • Constructor Detail

      • AbstractTraverser

        protected AbstractTraverser()
      • AbstractTraverser

        public AbstractTraverser​(T t)
    • Method Detail

      • merge

        public void merge​(Traverser.Admin<?> other)
        Description copied from interface: Traverser.Admin
        When two traversers are have equality with each other, then they can be merged. This method is used to merge the traversers into a single traverser. This is used for optimization where instead of enumerating all traversers, they can be counted.
        Specified by:
        merge in interface Traverser.Admin<T>
        Parameters:
        other - the other traverser to merge into this traverser. Once merged, the other can be garbage collected.
      • split

        public <R> Traverser.Admin<R> split​(R r,
                                            Step<T,​R> step)
        Description copied from interface: Traverser.Admin
        Generate a child traverser of the current traverser for current as step and new object location. The child has the path history, future, and loop information of the parent. The child extends that path history with the current as and provided R-object.
        Specified by:
        split in interface Traverser.Admin<T>
        Type Parameters:
        R - The current object type of the child
        Parameters:
        r - The current object of the child
        step - The step yielding the split
        Returns:
        The split traverser
      • split

        public Traverser.Admin<T> split()
        Description copied from interface: Traverser.Admin
        Generate a sibling traverser of the current traverser with a full copy of all state within the sibling.
        Specified by:
        split in interface Traverser.Admin<T>
        Returns:
        The split traverser
      • keepLabels

        public void keepLabels​(Set<String> labels)
        Description copied from interface: Traverser.Admin
        Drop all path information not associated with specified labels. This is an optimization method that allows a traverser to save memory and increase the likelihood of bulking.
        Specified by:
        keepLabels in interface Traverser.Admin<T>
        Parameters:
        labels - the labels to keep path information for.
      • dropLabels

        public void dropLabels​(Set<String> labels)
        Description copied from interface: Traverser.Admin
        Drop all path information associated with specified labels. This is an optimization method that allows a traverser to save memory and increase the likelihood of bulking.
        Specified by:
        dropLabels in interface Traverser.Admin<T>
        Parameters:
        labels - the labels to drop path information for.
      • dropPath

        public void dropPath()
        Description copied from interface: Traverser.Admin
        Drop the path of the traverser. This is an optimization method that allows a traverser to save memory and increase the likelihood of bulking.
        Specified by:
        dropPath in interface Traverser.Admin<T>
      • set

        public void set​(T t)
        Description copied from interface: Traverser.Admin
        Set the current object location of the traverser.
        Specified by:
        set in interface Traverser.Admin<T>
        Parameters:
        t - The current object of the traverser
      • getStepId

        public String getStepId()
        Description copied from interface: Traverser.Admin
        Get the step id of where the traverser is located. This is typically used in multi-machine systems that require the movement of traversers between different traversal instances.
        Specified by:
        getStepId in interface Traverser.Admin<T>
        Returns:
        The future step for the traverser
      • setBulk

        public void setBulk​(long count)
        Description copied from interface: Traverser.Admin
        Set the number of traversers represented by this traverser.
        Specified by:
        setBulk in interface Traverser.Admin<T>
        Parameters:
        count - the number of traversers
      • attach

        public T attach​(Function<Attachable<T>,​T> method)
        Description copied from interface: Traverser.Admin
        Regenerate the detached traverser given its location at a particular vertex.
        Specified by:
        attach in interface Attachable<T>
        Specified by:
        attach in interface Traverser.Admin<T>
        Parameters:
        method - The method by which to attach a Traverser to an vertex.
        Returns:
        The inflated traverser
      • setSideEffects

        public void setSideEffects​(TraversalSideEffects sideEffects)
        Description copied from interface: Traverser.Admin
        Set the sideEffects of the Traversal. Given that traversers can move between machines, it may be important to re-set this when the traverser crosses machine boundaries.
        Specified by:
        setSideEffects in interface Traverser.Admin<T>
        Parameters:
        sideEffects - the sideEffects of the traversal.
      • get

        public T get()
        Description copied from interface: Traverser
        Get the object that the traverser is current at.
        Specified by:
        get in interface Attachable<T>
        Specified by:
        get in interface Traverser<T>
        Returns:
        The current object of the traverser
      • sack

        public <S> S sack()
        Description copied from interface: Traverser
        Get the sack local sack object of this traverser.
        Specified by:
        sack in interface Traverser<T>
        Type Parameters:
        S - the type of the sack object
        Returns:
        the sack object
      • sack

        public <S> void sack​(S object)
        Description copied from interface: Traverser
        Set the traversers sack object to the provided value ("sack the value").
        Specified by:
        sack in interface Traverser<T>
        Type Parameters:
        S - the type of the object
        Parameters:
        object - the new value of the traverser's sack
      • path

        public Path path()
        Description copied from interface: Traverser
        Get the current path of the traverser.
        Specified by:
        path in interface Traverser<T>
        Returns:
        The path of the traverser
      • bulk

        public long bulk()
        Description copied from interface: Traverser
        A traverser may represent a grouping of traversers to allow for more efficient data propagation.
        Specified by:
        bulk in interface Traverser<T>
        Returns:
        the number of traversers represented in this traverser.
      • clone

        public AbstractTraverser<T> clone()
        Description copied from interface: Traverser
        Traverser cloning is important when splitting a traverser at a bifurcation point in a traversal.
        Specified by:
        clone in interface Traverser<T>
        Overrides:
        clone in class Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object