@Override public TraversalSideEffects clone() { try { final MemoryTraversalSideEffects clone = (MemoryTraversalSideEffects) super.clone(); clone.sideEffects = this.sideEffects.clone(); return clone; } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e.getMessage(), e); } }
@Override public DefaultTraversal<S, E> clone() { try { final DefaultTraversal<S, E> clone = (DefaultTraversal<S, E>) super.clone(); clone.lastTraverser = EmptyTraverser.instance(); clone.steps = new ArrayList<>(); clone.unmodifiableSteps = Collections.unmodifiableList(clone.steps); clone.sideEffects = this.sideEffects.clone(); clone.strategies = this.strategies; clone.bytecode = this.bytecode.clone(); for (final Step<?, ?> step : this.steps) { final Step<?, ?> clonedStep = step.clone(); clonedStep.setTraversal(clone); final Step previousStep = clone.steps.isEmpty() ? EmptyStep.instance() : clone.steps.get(clone.steps.size() - 1); clonedStep.setPreviousStep(previousStep); previousStep.setNextStep(clonedStep); clone.steps.add(clonedStep); } clone.finalEndStep = clone.getEndStep(); return clone; } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e.getMessage(), e); } }
@Override public TraversalSideEffects clone() { try { final MemoryTraversalSideEffects clone = (MemoryTraversalSideEffects) super.clone(); clone.sideEffects = this.sideEffects.clone(); return clone; } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e.getMessage(), e); } }
@Override public DefaultTraversal<S, E> clone() { try { final DefaultTraversal<S, E> clone = (DefaultTraversal<S, E>) super.clone(); clone.lastTraverser = EmptyTraverser.instance(); clone.steps = new ArrayList<>(); clone.unmodifiableSteps = Collections.unmodifiableList(clone.steps); clone.sideEffects = this.sideEffects.clone(); clone.strategies = this.strategies; clone.bytecode = this.bytecode.clone(); for (final Step<?, ?> step : this.steps) { final Step<?, ?> clonedStep = step.clone(); clonedStep.setTraversal(clone); final Step previousStep = clone.steps.isEmpty() ? EmptyStep.instance() : clone.steps.get(clone.steps.size() - 1); clonedStep.setPreviousStep(previousStep); previousStep.setNextStep(clonedStep); clone.steps.add(clonedStep); } clone.finalEndStep = clone.getEndStep(); return clone; } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e.getMessage(), e); } }