while (messages.hasNext()) { IteratorUtils.removeOnNext(messages.next().iterator()).forEachRemaining(traverser -> { if (traverser.isHalted()) { if (returnHaltedTraversers) memory.add(TraversalVertexProgram.HALTED_TRAVERSERS, new TraverserSet<>(haltedTraverserStrategy.halt(traverser)));
traverser.set(DetachedFactory.detach(traverser.get(), true)); // why? traverser.setSideEffects(traversal.get().getSideEffects()); if (traverser.isHalted()) haltedTraversers.add(haltedTraverserStrategy.halt(traverser)); else if (isRemoteTraverser(traverser, traversalMatrix)) // this is so that patterns like order().name work as expected. try and stay local as long as possible while (previousStep.hasNext()) { final Traverser.Admin<Object> result = previousStep.next(); if (result.isHalted()) haltedTraversers.add(haltedTraverserStrategy.halt(result)); else if (isRemoteTraverser(result, traversalMatrix)) while (currentStep.hasNext()) { final Traverser.Admin<Object> traverser = currentStep.next(); if (traverser.isHalted()) haltedTraversers.add(haltedTraverserStrategy.halt(traverser)); else if (isRemoteTraverser(traverser, traversalMatrix))
while (messages.hasNext()) { IteratorUtils.removeOnNext(messages.next().iterator()).forEachRemaining(traverser -> { if (traverser.isHalted()) { if (returnHaltedTraversers) memory.add(TraversalVertexProgram.HALTED_TRAVERSERS, new TraverserSet<>(haltedTraverserStrategy.halt(traverser)));
graphStep.setIteratorSupplier(() -> (Iterator) IteratorUtils.filter(vertex.edges(Direction.OUT), edge -> ElementHelper.idExists(edge.id(), graphStep.getIds()))); graphStep.forEachRemaining(traverser -> { if (traverser.isHalted()) { if (this.returnHaltedTraversers) memory.add(HALTED_TRAVERSERS, new TraverserSet<>(this.haltedTraverserStrategy.halt(traverser)));
traverser.set(DetachedFactory.detach(traverser.get(), true)); // why? traverser.setSideEffects(traversal.get().getSideEffects()); if (traverser.isHalted()) haltedTraversers.add(haltedTraverserStrategy.halt(traverser)); else if (isRemoteTraverser(traverser, traversalMatrix)) // this is so that patterns like order().name work as expected. try and stay local as long as possible while (previousStep.hasNext()) { final Traverser.Admin<Object> result = previousStep.next(); if (result.isHalted()) haltedTraversers.add(haltedTraverserStrategy.halt(result)); else if (isRemoteTraverser(result, traversalMatrix)) while (currentStep.hasNext()) { final Traverser.Admin<Object> traverser = currentStep.next(); if (traverser.isHalted()) haltedTraversers.add(haltedTraverserStrategy.halt(traverser)); else if (isRemoteTraverser(traverser, traversalMatrix))
graphStep.setIteratorSupplier(() -> (Iterator) IteratorUtils.filter(vertex.edges(Direction.OUT), edge -> ElementHelper.idExists(edge.id(), graphStep.getIds()))); graphStep.forEachRemaining(traverser -> { if (traverser.isHalted()) { if (this.returnHaltedTraversers) memory.add(HALTED_TRAVERSERS, new TraverserSet<>(this.haltedTraverserStrategy.halt(traverser)));