@Override public Traversal.Admin<S, E> clone() { try { final AbstractLambdaTraversal<S, E> clone = (AbstractLambdaTraversal<S, E>) super.clone(); if (null != this.bypassTraversal) clone.bypassTraversal = this.bypassTraversal.clone(); return clone; } catch (final CloneNotSupportedException e) { throw new IllegalStateException(e.getMessage(), e); } }
@Override public CoalesceStep<S, E> clone() { final CoalesceStep<S, E> clone = (CoalesceStep<S, E>) super.clone(); clone.coalesceTraversals = new ArrayList<>(); for (final Traversal.Admin<S, E> conjunctionTraversal : this.coalesceTraversals) { clone.coalesceTraversals.add(conjunctionTraversal.clone()); } return clone; }
@Override public ConnectiveStep<S> clone() { final ConnectiveStep<S> clone = (ConnectiveStep<S>) super.clone(); clone.traversals = new ArrayList<>(); for (final Traversal.Admin<S, ?> traversal : this.traversals) { clone.traversals.add(traversal.clone()); } return clone; }
@Override public OrderGlobalStep<S, C> clone() { final OrderGlobalStep<S, C> clone = (OrderGlobalStep<S, C>) super.clone(); clone.comparators = new ArrayList<>(); for (final Pair<Traversal.Admin<S, C>, Comparator<C>> comparator : this.comparators) { clone.comparators.add(new Pair<>(comparator.getValue0().clone(), comparator.getValue1())); } return clone; }
@Override public WhereTraversalStep<S> clone() { final WhereTraversalStep<S> clone = (WhereTraversalStep<S>) super.clone(); clone.whereTraversal = this.whereTraversal.clone(); return clone; }
@Override public PropertyMapStep<K,E> clone() { final PropertyMapStep<K,E> clone = (PropertyMapStep<K,E>) super.clone(); if (null != this.propertyTraversal) clone.propertyTraversal = this.propertyTraversal.clone(); clone.traversalRing = this.traversalRing.clone(); return clone; }
@Override public OptionalStep<S> clone() { final OptionalStep<S> clone = (OptionalStep<S>) super.clone(); clone.optionalTraversal = this.optionalTraversal.clone(); return clone; }
@Override public GroupCountSideEffectStep<S, E> clone() { final GroupCountSideEffectStep<S, E> clone = (GroupCountSideEffectStep<S, E>) super.clone(); if (null != this.keyTraversal) clone.keyTraversal = this.keyTraversal.clone(); return clone; }
@Override public GroupSideEffectStep<S, K, V> clone() { final GroupSideEffectStep<S, K, V> clone = (GroupSideEffectStep<S, K, V>) super.clone(); if (null != this.keyTraversal) clone.keyTraversal = this.keyTraversal.clone(); clone.valueTraversal = this.valueTraversal.clone(); clone.barrierStep = GroupStep.determineBarrierStep(clone.valueTraversal); return clone; }
@Override public RepeatStep<S> clone() { final RepeatStep<S> clone = (RepeatStep<S>) super.clone(); clone.repeatTraversal = this.repeatTraversal.clone(); if (null != this.untilTraversal) clone.untilTraversal = this.untilTraversal.clone(); if (null != this.emitTraversal) clone.emitTraversal = this.emitTraversal.clone(); return clone; }
@Override public VertexProgram generateProgram(final Graph graph, final Memory memory) { final MapConfiguration base = new MapConfiguration(this.configuration); base.setDelimiterParsingDisabled(true); PureTraversal.storeState(base, ROOT_TRAVERSAL, TraversalHelper.getRootTraversal(this.getTraversal()).clone()); base.setProperty(STEP_ID, this.getId()); if (memory.exists(TraversalVertexProgram.HALTED_TRAVERSERS)) TraversalVertexProgram.storeHaltedTraversers(base, memory.get(TraversalVertexProgram.HALTED_TRAVERSERS)); return VertexProgram.createVertexProgram(graph, base); }
public TraversalExplanation(final Traversal.Admin<?, ?> traversal) { this.traversal = traversal.clone(); TraversalStrategies mutatingStrategies = new DefaultTraversalStrategies(); for (final TraversalStrategy strategy : this.traversal.getStrategies().toList()) { final Traversal.Admin<?, ?> mutatingTraversal = this.traversal.clone(); mutatingStrategies.addStrategies(strategy); mutatingTraversal.setStrategies(mutatingStrategies); mutatingTraversal.applyStrategies(); this.strategyTraversals.add(Pair.with(strategy, mutatingTraversal)); } }
@Override public LocalStep<S, E> clone() { final LocalStep<S, E> clone = (LocalStep<S, E>) super.clone(); clone.localTraversal = this.localTraversal.clone(); clone.first = true; return clone; }
@Override public SampleGlobalStep<S> clone() { final SampleGlobalStep<S> clone = (SampleGlobalStep<S>) super.clone(); clone.probabilityTraversal = this.probabilityTraversal.clone(); return clone; }
@Override public GroupCountStep<S, E> clone() { final GroupCountStep<S, E> clone = (GroupCountStep<S, E>) super.clone(); if (null != this.keyTraversal) clone.keyTraversal = this.keyTraversal.clone(); return clone; }
@Override public SelectOneStep<S, E> clone() { final SelectOneStep<S, E> clone = (SelectOneStep<S, E>) super.clone(); if (null != this.selectTraversal) clone.selectTraversal = this.selectTraversal.clone(); return clone; }
@Override public GroupStep<S, K, V> clone() { final GroupStep<S, K, V> clone = (GroupStep<S, K, V>) super.clone(); if (null != this.keyTraversal) clone.keyTraversal = this.keyTraversal.clone(); clone.valueTraversal = this.valueTraversal.clone(); clone.barrierStep = determineBarrierStep(clone.valueTraversal); return clone; }
@Override public TraversalSideEffectStep<S> clone() { final TraversalSideEffectStep<S> clone = (TraversalSideEffectStep<S>) super.clone(); clone.sideEffectTraversal = this.sideEffectTraversal.clone(); return clone; }
@Override public OrderLocalStep<S, C> clone() { final OrderLocalStep<S, C> clone = (OrderLocalStep<S, C>) super.clone(); clone.comparators = new ArrayList<>(); for (final Pair<Traversal.Admin<S, C>, Comparator<C>> comparator : this.comparators) { clone.comparators.add(new Pair<>(comparator.getValue0().clone(), comparator.getValue1())); } clone.chainedComparator = null; return clone; }
@Override public TraversalMapStep<S, E> clone() { final TraversalMapStep<S, E> clone = (TraversalMapStep<S, E>) super.clone(); clone.mapTraversal = this.mapTraversal.clone(); return clone; }