Source:
<code>protected Iterator<Traverser.Admin<Map<String, E>>> standardAlgorithm() throws NoSuchElementException { while (true) { if (this.first) { this.first = false; <START> this.initializeMatchAlgorithm(true); <END> if (null != this.keepLabels && this.keepLabels.containsAll(this.matchEndLabels) && this.keepLabels.containsAll(this.matchStartLabels)) this.keepLabels = null; } else { boolean stop = false; for (final Traversal.Admin<?, ?> matchTraversal : this.matchTraversals) { while (matchTraversal.hasNext()) { this.standardAlgorithmBarrier.add(matchTraversal.nextTraverser()); if (null == this.keepLabels || this.standardAlgorithmBarrier.size() >= PathRetractionStrategy.MAX_BARRIER_SIZE) { stop = true; break; } } if (stop) break; } } final Traverser.Admin traverser; if (this.standardAlgorithmBarrier.isEmpty()) { traverser = this.starts.next(); if (!traverser.getTags().contains(this.getId())) { traverser.getTags().add(this.getId()); if (!this.hasPathLabel(traverser.path(), this.matchStartLabels)) traverser.addLabels(Collections.singleton(this.computedStartLabel)); } } else traverser = this.standardAlgorithmBarrier.remove(); if (!this.isDuplicate(traverser)) { if (hasMatched(this.connective, traverser)) return IteratorUtils.of(traverser.split(this.getBindings(traverser), this)); if (this.connective == ConnectiveStep.Connective.AND) { final Traversal.Admin<Object, Object> matchTraversal = this.getMatchAlgorithm().apply(traverser); traverser.getTags().add(matchTraversal.getStartStep().getId()); matchTraversal.addStart(traverser); } else { for (final Traversal.Admin<?, ?> matchTraversal : this.matchTraversals) { final Traverser.Admin split = traverser.split(); split.getTags().add(matchTraversal.getStartStep().getId()); matchTraversal.addStart(split); } } } } }</code><technical_language>this false</technical_language>

Target:
protected Iterator<Traverser.Admin<Map<String, E>>> standardAlgorithm() throws NoSuchElementException { while (true) { if (this.first) { this.first = false; this.initializeMatchAlgorithm(false); if (null != this.keepLabels && this.keepLabels.containsAll(this.matchEndLabels) && this.keepLabels.containsAll(this.matchStartLabels)) this.keepLabels = null; } else { boolean stop = false; for (final Traversal.Admin<?, ?> matchTraversal : this.matchTraversals) { while (matchTraversal.hasNext()) { this.standardAlgorithmBarrier.add(matchTraversal.nextTraverser()); if (null == this.keepLabels || this.standardAlgorithmBarrier.size() >= PathRetractionStrategy.MAX_BARRIER_SIZE) { stop = true; break; } } if (stop) break; } } final Traverser.Admin traverser; if (this.standardAlgorithmBarrier.isEmpty()) { traverser = this.starts.next(); if (!traverser.getTags().contains(this.getId())) { traverser.getTags().add(this.getId()); if (!this.hasPathLabel(traverser.path(), this.matchStartLabels)) traverser.addLabels(Collections.singleton(this.computedStartLabel)); } } else traverser = this.standardAlgorithmBarrier.remove(); if (!this.isDuplicate(traverser)) { if (hasMatched(this.connective, traverser)) return IteratorUtils.of(traverser.split(this.getBindings(traverser), this)); if (this.connective == ConnectiveStep.Connective.AND) { final Traversal.Admin<Object, Object> matchTraversal = this.getMatchAlgorithm().apply(traverser); traverser.getTags().add(matchTraversal.getStartStep().getId()); matchTraversal.addStart(traverser); } else { for (final Traversal.Admin<?, ?> matchTraversal : this.matchTraversals) { final Traverser.Admin split = traverser.split(); split.getTags().add(matchTraversal.getStartStep().getId()); matchTraversal.addStart(split); } } } } }