@Override public ProjectedTraverser<T, P> clone() { try { final ProjectedTraverser<T, P> clone = (ProjectedTraverser<T, P>) super.clone(); clone.baseTraverser = (Traverser.Admin<T>) this.baseTraverser.clone(); return clone; } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e.getMessage(), e); } }
@Override public ProjectedTraverser<T, P> clone() { try { final ProjectedTraverser<T, P> clone = (ProjectedTraverser<T, P>) super.clone(); clone.baseTraverser = (Traverser.Admin<T>) this.baseTraverser.clone(); return clone; } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e.getMessage(), e); } }
@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 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(); }