private static final boolean processAndStep(final AndStep<?> step, final Traversal.Admin<?, ?> traversal) { boolean process = true; for (final Traversal.Admin<?, ?> childTraversal : step.getLocalChildren()) { if (!TraversalHelper.hasAllStepsOfClass(childTraversal, FilterStep.class) || TraversalHelper.hasStepOfClass(childTraversal, DropStep.class, RangeGlobalStep.class, DedupGlobalStep.class, LambdaHolder.class)) { process = false; break; } } if (process) { final List<Traversal.Admin<?, ?>> childTraversals = (List) step.getLocalChildren(); Step<?, ?> finalStep = null; for (int i = childTraversals.size() - 1; i >= 0; i--) { final Traversal.Admin<?, ?> childTraversal = childTraversals.get(i); TraversalHelper.applySingleLevelStrategies(traversal, childTraversal, InlineFilterStrategy.class); if (null == finalStep) finalStep = childTraversal.getEndStep(); TraversalHelper.insertTraversal((Step) step, childTraversals.get(i), traversal); } if (null != finalStep) TraversalHelper.copyLabels(step, finalStep, false); traversal.removeStep(step); return true; } return false; }
/** * Ensures that all of the provided traversals yield a result. * * @param andTraversals filter traversals that must be satisfied * @return the traversal with an appended {@link AndStep} * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#and-step" target="_blank">Reference Documentation - And Step</a> * @since 3.0.0-incubating */ public default GraphTraversal<S, E> and(final Traversal<?, ?>... andTraversals) { this.asAdmin().getBytecode().addStep(Symbols.and, andTraversals); return this.asAdmin().addStep(new AndStep(this.asAdmin(), andTraversals)); }
for (AndStep<S> andStep : andSteps) { Collection<Traversal.Admin<S, ?>> andTraversals = andStep.getLocalChildren(); andTraversals ); for (String label : andStep.getLabels()) { sqlgAndStepBarrier.addLabel(label); andStep, sqlgAndStepBarrier, andStep.getTraversal() );
for (AndStep<S> andStep : andSteps) { Collection<Traversal.Admin<S, ?>> andTraversals = andStep.getLocalChildren(); andTraversals ); for (String label : andStep.getLabels()) { sqlgAndStepBarrier.addLabel(label); andStep, sqlgAndStepBarrier, andStep.getTraversal() );
private static final boolean processAndStep(final AndStep<?> step, final Traversal.Admin<?, ?> traversal) { boolean process = true; for (final Traversal.Admin<?, ?> childTraversal : step.getLocalChildren()) { if (!TraversalHelper.hasAllStepsOfClass(childTraversal, FilterStep.class) || TraversalHelper.hasStepOfClass(childTraversal, DropStep.class, RangeGlobalStep.class, DedupGlobalStep.class, LambdaHolder.class)) { process = false; break; } } if (process) { final List<Traversal.Admin<?, ?>> childTraversals = (List) step.getLocalChildren(); Step<?, ?> finalStep = null; for (int i = childTraversals.size() - 1; i >= 0; i--) { final Traversal.Admin<?, ?> childTraversal = childTraversals.get(i); TraversalHelper.applySingleLevelStrategies(traversal, childTraversal, InlineFilterStrategy.class); if (null == finalStep) finalStep = childTraversal.getEndStep(); TraversalHelper.insertTraversal((Step) step, childTraversals.get(i), traversal); } if (null != finalStep) TraversalHelper.copyLabels(step, finalStep, false); traversal.removeStep(step); return true; } return false; }
/** * Ensures that all of the provided traversals yield a result. * * @param andTraversals filter traversals that must be satisfied * @return the traversal with an appended {@link AndStep} * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#and-step" target="_blank">Reference Documentation - And Step</a> * @since 3.0.0-incubating */ public default GraphTraversal<S, E> and(final Traversal<?, ?>... andTraversals) { this.asAdmin().getBytecode().addStep(Symbols.and, andTraversals); return this.asAdmin().addStep(new AndStep(this.asAdmin(), andTraversals)); }