private static void applyCriterion(final List<Step> stepsToApplyCriterionAfter, final Traversal.Admin traversal, final Traversal.Admin<? extends Element, ?> criterion) { for (final Step<?, ?> step : stepsToApplyCriterionAfter) { // re-assign the step label to the criterion because the label should apply seamlessly after the filter final Step filter = new TraversalFilterStep<>(traversal, criterion.clone()); TraversalHelper.insertAfterStep(filter, step, traversal); TraversalHelper.copyLabels(step, filter, true); } }
public static <S, E> Step<?, E> insertTraversal(final int insertIndex, final Traversal.Admin<S, E> insertTraversal, final Traversal.Admin<?, ?> traversal) { if (0 == traversal.getSteps().size()) { Step currentStep = EmptyStep.instance(); for (final Step insertStep : insertTraversal.getSteps()) { currentStep = insertStep; traversal.addStep(insertStep); } return currentStep; } else { Step currentStep = traversal.getSteps().get(insertIndex); for (final Step insertStep : insertTraversal.getSteps()) { TraversalHelper.insertAfterStep(insertStep, currentStep, traversal); currentStep = insertStep; } return currentStep; } }
final Traversal.Admin newTraversal = new DefaultTraversal<>(); TraversalHelper.removeToTraversal(matchTraversal.getStartStep().getNextStep(), matchTraversal.getEndStep(), newTraversal); TraversalHelper.insertAfterStep(new TraversalFlatMapStep<>(matchTraversal, newTraversal), matchTraversal.getStartStep(), matchTraversal);
((HasContainerHolder) graphStep).addHasContainer(new HasContainer(this.idPropertyKey, P.within(Arrays.asList(graphStep.getIds())))); else TraversalHelper.insertAfterStep(new HasStep(traversal, new HasContainer(this.idPropertyKey, P.within(Arrays.asList(graphStep.getIds())))), graphStep, traversal); graphStep.clearIds();
stepsToInsertHasAfter.forEach(step -> TraversalHelper.insertAfterStep( new HasStep(traversal, new HasContainer(partitionKey, P.within(new ArrayList<>(readPartitions)))), step, traversal)); TraversalHelper.insertAfterStep(new LambdaMapStep<>(traversal, new MapPropertiesFilter()), step, traversal); } else if (step.getReturnType() == PropertyType.VALUE) { TraversalHelper.insertAfterStep(mapPropertiesFilterStep, propertyMapStep, traversal); TraversalHelper.insertAfterStep(new LambdaMapStep<>(traversal, new MapPropertiesConverter()), mapPropertiesFilterStep, traversal); } else { throw new IllegalStateException(String.format("%s is not accounting for a particular %s %s", addPropertyStepsToAppend.forEach(s -> TraversalHelper.insertAfterStep(s, step, traversal)); });
final Step noOpBarrierStep = new NoOpBarrierStep<>(traversal, MAX_BARRIER_SIZE); TraversalHelper.copyLabels(step, noOpBarrierStep, true); TraversalHelper.insertAfterStep(noOpBarrierStep, step, traversal); } else foundFlatMap = true;
!(currentStep.getNextStep() instanceof NoneStep) && !(currentStep.getNextStep() instanceof EmptyStep)) TraversalHelper.insertAfterStep(new NoOpBarrierStep<>(traversal, this.standardBarrierSize), currentStep, traversal);
continue; if (null != this.vertexCriterion && null == edgeCriterion) { TraversalHelper.insertAfterStep(new TraversalFilterStep<>(traversal, (Traversal) this.vertexCriterion.clone()), step, traversal); } else { final VertexStep<Edge> someEStep = new VertexStep<>(traversal, Edge.class, step.getDirection(), step.getEdgeLabels()); TraversalHelper.insertAfterStep(someVStep, someEStep, traversal); TraversalHelper.copyLabels(step, someVStep, true); TraversalHelper.insertAfterStep(new TraversalFilterStep<>(traversal, this.edgeCriterion.clone()), someEStep, traversal); if (null != this.vertexCriterion) TraversalHelper.insertAfterStep(new TraversalFilterStep<>(traversal, this.vertexCriterion.clone()), someVStep, traversal); } else { final Step<?, ?> temp = checkPropertyCriterion.clone(); TraversalHelper.insertAfterStep(temp, (Step) step, traversal); TraversalHelper.copyLabels(step, temp, true); TraversalHelper.copyLabels(step, propertyValueStep, false); if ('v' == propertyType) { TraversalHelper.insertAfterStep(propertyValueStep, propertiesStep, traversal); TraversalHelper.insertTraversal(propertiesStep, nonCheckPropertyCriterion.clone(), traversal); } else { TraversalHelper.insertAfterStep(propertyValueStep, propertiesStep, traversal); TraversalHelper.insertAfterStep(checkPropertyCriterion.clone(), propertiesStep, traversal);
((TraversalVertexProgramStep) step).getGlobalChildren().get(0).getEndStep().getLabels().forEach(computerResultStep::addLabel); TraversalHelper.insertAfterStep(computerResultStep, (Step) step, traversal);
TraversalHelper.insertAfterStep(new SelectOneStep<>(traversal, Pop.last, generatedLabel), whereTraversalStep, traversal); whereStartStep.removeScopeKey();
@SuppressWarnings("unchecked") @Override protected void replaceStepInTraversal(Step stepToReplace, SqlgStep sqlgStep) { if (this.traversal.getSteps().contains(stepToReplace)) { TraversalHelper.replaceStep(stepToReplace, sqlgStep, this.traversal); } else { TraversalHelper.insertAfterStep(sqlgStep, stepToReplace.getPreviousStep(), this.traversal); } } }
@SuppressWarnings("unchecked") @Override protected void replaceStepInTraversal(Step stepToReplace, SqlgStep sqlgStep) { if (this.traversal.getSteps().contains(stepToReplace)) { TraversalHelper.replaceStep(stepToReplace, sqlgStep, this.traversal); } else { TraversalHelper.insertAfterStep(sqlgStep, stepToReplace.getPreviousStep(), this.traversal); } } }
private static void applyCriterion(final List<Step> stepsToApplyCriterionAfter, final Traversal.Admin traversal, final Traversal.Admin<? extends Element, ?> criterion) { for (final Step<?, ?> step : stepsToApplyCriterionAfter) { // re-assign the step label to the criterion because the label should apply seamlessly after the filter final Step filter = new TraversalFilterStep<>(traversal, criterion.clone()); TraversalHelper.insertAfterStep(filter, step, traversal); TraversalHelper.copyLabels(step, filter, true); } }
public static <S, E> Step<?, E> insertTraversal(final int insertIndex, final Traversal.Admin<S, E> insertTraversal, final Traversal.Admin<?, ?> traversal) { if (0 == traversal.getSteps().size()) { Step currentStep = EmptyStep.instance(); for (final Step insertStep : insertTraversal.getSteps()) { currentStep = insertStep; traversal.addStep(insertStep); } return currentStep; } else { Step currentStep = traversal.getSteps().get(insertIndex); for (final Step insertStep : insertTraversal.getSteps()) { TraversalHelper.insertAfterStep(insertStep, currentStep, traversal); currentStep = insertStep; } return currentStep; } }
@SuppressWarnings("unchecked") @Override public void apply(Traversal.Admin<?, ?> traversal) { Preconditions.checkState(!(this.sqlgSchema && this.globalUniqueIndex), "sqlgSchema and globalUnique are mutually exclusive. Both can not be true."); if (!TraversalHelper.getStepsOfAssignableClass(GraphStep.class, traversal).isEmpty() || !TraversalHelper.getStepsOfAssignableClass(VertexStep.class, traversal).isEmpty()) { if (this.sqlgSchema) { TraversalHelper.insertAfterStep( new HasStep(traversal, new HasContainer(TOPOLOGY_SELECTION_SQLG_SCHEMA, P.eq(this.sqlgSchema))), traversal.getStartStep(), traversal ); } if (this.globalUniqueIndex) { TraversalHelper.insertAfterStep( new HasStep(traversal, new HasContainer(TOPOLOGY_SELECTION_GLOBAL_UNIQUE_INDEX, P.eq(this.globalUniqueIndex))), traversal.getStartStep(), traversal ); } } }
@SuppressWarnings("unchecked") @Override public void apply(Traversal.Admin<?, ?> traversal) { Preconditions.checkState(!(this.sqlgSchema && this.globalUniqueIndex), "sqlgSchema and globalUnique are mutually exclusive. Both can not be true."); if (!TraversalHelper.getStepsOfAssignableClass(GraphStep.class, traversal).isEmpty() || !TraversalHelper.getStepsOfAssignableClass(VertexStep.class, traversal).isEmpty()) { if (this.sqlgSchema) { TraversalHelper.insertAfterStep( new HasStep(traversal, new HasContainer(TOPOLOGY_SELECTION_SQLG_SCHEMA, P.eq(this.sqlgSchema))), traversal.getStartStep(), traversal ); } if (this.globalUniqueIndex) { TraversalHelper.insertAfterStep( new HasStep(traversal, new HasContainer(TOPOLOGY_SELECTION_GLOBAL_UNIQUE_INDEX, P.eq(this.globalUniqueIndex))), traversal.getStartStep(), traversal ); } } }
currentStep.getLabels().forEach(label -> this.currentReplacedStep.addLabel(pathCount + BaseStrategy.PATH_LABEL_SUFFIX + label)); TraversalHelper.insertAfterStep(identityStep, currentStep, this.traversal); currentStep.getLabels().forEach(label -> this.currentReplacedStep.addLabel(pathCount + BaseStrategy.PATH_LABEL_SUFFIX + label)); TraversalHelper.insertAfterStep(identityStep, currentStep, this.traversal); currentStep.getLabels().forEach(label -> this.currentReplacedStep.addLabel(pathCount + BaseStrategy.PATH_LABEL_SUFFIX + label)); TraversalHelper.insertAfterStep(identityStep, currentStep, this.traversal);
((HasContainerHolder) graphStep).addHasContainer(new HasContainer(this.idPropertyKey, P.within(Arrays.asList(graphStep.getIds())))); else TraversalHelper.insertAfterStep(new HasStep(traversal, new HasContainer(this.idPropertyKey, P.within(Arrays.asList(graphStep.getIds())))), graphStep, traversal); graphStep.clearIds();
final Traversal.Admin newTraversal = new DefaultTraversal<>(); TraversalHelper.removeToTraversal(matchTraversal.getStartStep().getNextStep(), matchTraversal.getEndStep(), newTraversal); TraversalHelper.insertAfterStep(new TraversalFlatMapStep<>(matchTraversal, newTraversal), matchTraversal.getStartStep(), matchTraversal);
final Step noOpBarrierStep = new NoOpBarrierStep<>(traversal, MAX_BARRIER_SIZE); TraversalHelper.copyLabels(step, noOpBarrierStep, true); TraversalHelper.insertAfterStep(noOpBarrierStep, step, traversal); } else foundFlatMap = true;