if (step.getClass().equals(markerClass)) { final ConnectiveStep<?> currentStep = (ConnectiveStep) step; if (currentStep.getLocalChildren().isEmpty()) { Traversal.Admin<?, ?> connectiveTraversal; currentStep.addLocalChild(connectiveTraversal = __.start().asAdmin()); for (int j = i - 1; j >= 0; i--, j--) { final Step previousStep = steps.get(j); currentStep.addLocalChild(connectiveTraversal = connectiveTraversal(connectiveTraversal, currentStep)); currentStep.getLabels().forEach(currentStep::removeLabel); while (i < steps.size()) { final Step nextStep = steps.get(i); if (legalCurrentStep(nextStep)) { if (nextStep.getClass().equals(markerClass) && ((ConnectiveStep) nextStep).getLocalChildren().isEmpty()) { final ConnectiveStep<?> nextConnectiveStep = (ConnectiveStep<?>) nextStep; currentStep.addLocalChild(connectiveTraversal = connectiveTraversal(connectiveTraversal, nextConnectiveStep)); } else { connectiveTraversal.addStep(nextStep); currentStep.getLocalChildren().forEach(t -> processConjunctionMarker(AndStep.class, t));
@Override public Set<TraverserRequirement> getRequirements() { return this.getSelfAndChildRequirements(); }
public void addLocalChild(final Traversal.Admin<?, ?> localChildTraversal) { this.traversals.add(this.integrateChild((Traversal.Admin) localChildTraversal)); }
final MatchStep matchStep = new MatchStep(matchTraversal, startStep instanceof AndStep ? ConnectiveStep.Connective.AND : ConnectiveStep.Connective.OR, ((ConnectiveStep<?>) startStep).getLocalChildren().toArray(new Traversal[((ConnectiveStep<?>) startStep).getLocalChildren().size()])); TraversalHelper.replaceStep(startStep, matchStep, matchTraversal); this.matchStartLabels.addAll(matchStep.matchStartLabels);
private static Traversal.Admin<?,?> connectiveTraversal(final Traversal.Admin<?, ?> connectiveTraversal, final ConnectiveStep connectiveStep) { final Traversal.Admin<?, ?> traversal = __.start().asAdmin(); final Set<String> conjunctionLabels = connectiveStep.getLabels(); if (!conjunctionLabels.isEmpty()) { final StartStep<?> startStep = new StartStep<>(connectiveTraversal); conjunctionLabels.forEach(startStep::addLabel); traversal.addStep(startStep); } return traversal; }
SqlgWhereStartStep(final Traversal.Admin traversal, final String selectKey) { super(traversal); this.selectKey = selectKey; }
private static Traversal.Admin<?,?> connectiveTraversal(final Traversal.Admin<?, ?> connectiveTraversal, final ConnectiveStep connectiveStep) { final Traversal.Admin<?, ?> traversal = __.start().asAdmin(); final Set<String> conjunctionLabels = connectiveStep.getLabels(); if (!conjunctionLabels.isEmpty()) { final StartStep<?> startStep = new StartStep<>(connectiveTraversal); conjunctionLabels.forEach(startStep::addLabel); traversal.addStep(startStep); } return traversal; }
if (step.getClass().equals(markerClass)) { final ConnectiveStep<?> currentStep = (ConnectiveStep) step; if (currentStep.getLocalChildren().isEmpty()) { Traversal.Admin<?, ?> connectiveTraversal; currentStep.addLocalChild(connectiveTraversal = __.start().asAdmin()); for (int j = i - 1; j >= 0; i--, j--) { final Step previousStep = steps.get(j); currentStep.addLocalChild(connectiveTraversal = connectiveTraversal(connectiveTraversal, currentStep)); currentStep.getLabels().forEach(currentStep::removeLabel); while (i < steps.size()) { final Step nextStep = steps.get(i); if (legalCurrentStep(nextStep)) { if (nextStep.getClass().equals(markerClass) && ((ConnectiveStep) nextStep).getLocalChildren().isEmpty()) { final ConnectiveStep<?> nextConnectiveStep = (ConnectiveStep<?>) nextStep; currentStep.addLocalChild(connectiveTraversal = connectiveTraversal(connectiveTraversal, nextConnectiveStep)); } else { connectiveTraversal.addStep(nextStep); currentStep.getLocalChildren().forEach(t -> processConjunctionMarker(AndStep.class, t));
SqlgWhereStartStep(final Traversal.Admin traversal, final String selectKey) { super(traversal); this.selectKey = selectKey; }
@Override public void setTraversal(final Traversal.Admin<?, ?> parentTraversal) { super.setTraversal(parentTraversal); for (final Traversal.Admin<S, ?> traversal : this.traversals) { integrateChild(traversal); } }
@Override public Set<TraverserRequirement> getRequirements() { return this.getSelfAndChildRequirements(); }
final MatchStep matchStep = new MatchStep(matchTraversal, startStep instanceof AndStep ? ConnectiveStep.Connective.AND : ConnectiveStep.Connective.OR, ((ConnectiveStep<?>) startStep).getLocalChildren().toArray(new Traversal[((ConnectiveStep<?>) startStep).getLocalChildren().size()])); TraversalHelper.replaceStep(startStep, matchStep, matchTraversal); this.matchStartLabels.addAll(matchStep.matchStartLabels);
public void addLocalChild(final Traversal.Admin<?, ?> localChildTraversal) { this.traversals.add(this.integrateChild((Traversal.Admin) localChildTraversal)); }
AndOrHasContainer outerAndOrHasContainer = new AndOrHasContainer(type); @SuppressWarnings("unchecked") List<Traversal.Admin<?, ?>> localTraversals = connectiveStep.getLocalChildren(); for (Traversal.Admin<?, ?> localTraversal : localTraversals) { if (!TraversalHelper.hasAllStepsOfClass(localTraversal, HasStep.class, ConnectiveStep.class, TraversalFilterStep.class, NotStep.class)) {
@Override public void setTraversal(final Traversal.Admin<?, ?> parentTraversal) { super.setTraversal(parentTraversal); for (final Traversal.Admin<S, ?> traversal : this.traversals) { integrateChild(traversal); } }
AndOrHasContainer outerAndOrHasContainer = new AndOrHasContainer(type); @SuppressWarnings("unchecked") List<Traversal.Admin<?, ?>> localTraversals = connectiveStep.getLocalChildren(); for (Traversal.Admin<?, ?> localTraversal : localTraversals) { if (!TraversalHelper.hasAllStepsOfClass(localTraversal, HasStep.class, ConnectiveStep.class, TraversalFilterStep.class, NotStep.class)) {