@Override public void reset() { super.reset(); this.previousIterator = EmptyIterator.instance(); }
@Override public ComputerAwareStep<S, E> clone() { final ComputerAwareStep<S, E> clone = (ComputerAwareStep<S, E>) super.clone(); clone.previousIterator = EmptyIterator.instance(); return clone; }
@Override public ComputerResultStep<S> clone() { final ComputerResultStep<S> clone = (ComputerResultStep<S>) super.clone(); clone.currentIterator = EmptyIterator.instance(); return clone; } }
@Override public void reset() { super.reset(); this.head = null; this.done = false; this.iterator = EmptyIterator.instance(); }
@Override public void reset() { super.reset(); closeIterator(); this.iterator = EmptyIterator.instance(); }
@Override protected Traverser.Admin<E> processNextStart() { while (true) { if (this.iterator.hasNext()) { return this.isStart ? this.getTraversal().getTraverserGenerator().generate(this.iterator.next(), (Step) this, 1l) : this.head.split(this.iterator.next(), this); } else { if (this.isStart) { if (this.done) throw FastNoSuchElementException.instance(); else { this.done = true; this.iterator = null == this.iteratorSupplier ? EmptyIterator.instance() : this.iteratorSupplier.get(); } } else { this.head = this.starts.next(); this.iterator = null == this.iteratorSupplier ? EmptyIterator.instance() : this.iteratorSupplier.get(); } } } }
@Override protected Traverser.Admin<S> processNextStart() throws NoSuchElementException { while (true) { if (this.currentIterator.hasNext()) return this.currentIterator.next(); else { final ComputerResult result = this.starts.next().get(); this.currentIterator = attach(result.memory().exists(TraversalVertexProgram.HALTED_TRAVERSERS) ? result.memory().<TraverserSet<S>>get(TraversalVertexProgram.HALTED_TRAVERSERS).iterator() : EmptyIterator.instance(), result.graph()); } } }
@Override protected Iterator<E> flatMap(final Traverser.Admin<S> traverser) { final Traverser.Admin<S> innerTraverser = traverser.clone().asAdmin(); innerTraverser.setBulk(1L); for (final Traversal.Admin<S, E> coalesceTraversal : this.coalesceTraversals) { coalesceTraversal.reset(); coalesceTraversal.addStart(innerTraverser.split()); if (coalesceTraversal.hasNext()) return coalesceTraversal; } return EmptyIterator.instance(); }
@Override public Iterator<Edge> search(SearchVertexQuery uniQuery) { return EmptyIterator.instance(); }
@Override public void reset() { super.reset(); this.results = EmptyIterator.instance(); }
@Override public ComputerAwareStep<S, E> clone() { final ComputerAwareStep<S, E> clone = (ComputerAwareStep<S, E>) super.clone(); clone.previousIterator = EmptyIterator.instance(); return clone; }
@Override public void reset() { super.reset(); this.previousIterator = EmptyIterator.instance(); }
@Override public SqlgComputerAwareStep<S, E> clone() { final SqlgComputerAwareStep<S, E> clone = (SqlgComputerAwareStep<S, E>) super.clone(); clone.previousIterator = EmptyIterator.instance(); return clone; }
@Override public ComputerResultStep<S> clone() { final ComputerResultStep<S> clone = (ComputerResultStep<S>) super.clone(); clone.currentIterator = EmptyIterator.instance(); return clone; } }
@Override public void reset() { super.reset(); this.head = null; this.done = false; this.iterator = EmptyIterator.instance(); }
@Override public void reset() { super.reset(); this.results = EmptyIterator.instance(); }
@Override public void reset() { super.reset(); closeIterator(); this.iterator = EmptyIterator.instance(); }
@Override public void reset() { super.reset(); closeIterator(); this.iterator = EmptyIterator.instance(); }
activeTraversers.clear(); if (graphStep.returnsVertex()) graphStep.setIteratorSupplier(() -> ElementHelper.idExists(vertex.id(), graphStep.getIds()) ? (Iterator) IteratorUtils.of(vertex) : EmptyIterator.instance()); else graphStep.setIteratorSupplier(() -> (Iterator) IteratorUtils.filter(vertex.edges(Direction.OUT), edge -> ElementHelper.idExists(edge.id(), graphStep.getIds())));
@Override protected Iterator<E> flatMap(final Traverser.Admin<S> traverser) { final Traverser.Admin<S> innerTraverser = traverser.clone().asAdmin(); innerTraverser.setBulk(1L); for (final Traversal.Admin<S, E> coalesceTraversal : this.coalesceTraversals) { coalesceTraversal.reset(); coalesceTraversal.addStart(innerTraverser.split()); if (coalesceTraversal.hasNext()) return coalesceTraversal; } return EmptyIterator.instance(); }