private static void assertNumStep(int expectedResults, int expectedSteps, GraphTraversal traversal, Class<? extends Step>... expectedStepTypes) { int num = 0; while (traversal.hasNext()) { traversal.next(); num++; } // System.out.println(traversal); assertEquals(expectedResults, num); //Verify that steps line up with what is expected after Titan's optimizations are applied List<Step> steps = traversal.asAdmin().getSteps(); Set<Class<? extends Step>> expSteps = Sets.newHashSet(expectedStepTypes); int numSteps = 0; for (Step s : steps) { // System.out.println(s.getClass()); if (s.getClass().equals(GraphStep.class) || s.getClass().equals(StartStep.class)) continue; assertTrue(s.getClass().getName(), expSteps.contains(s.getClass())); numSteps++; } assertEquals(expectedSteps, numSteps); }
private static void assertNumStep(int expectedResults, int expectedSteps, GraphTraversal traversal, Class<? extends Step>... expectedStepTypes) { int num = 0; while (traversal.hasNext()) { traversal.next(); num++; } assertEquals(expectedResults, num); //Verify that steps line up with what is expected after JanusGraph's optimizations are applied List<Step> steps = traversal.asAdmin().getSteps(); Set<Class<? extends Step>> expSteps = Sets.newHashSet(expectedStepTypes); int numSteps = 0; for (Step s : steps) { if (s.getClass().equals(GraphStep.class) || s.getClass().equals(StartStep.class)) continue; if (expSteps.contains(s.getClass())) { numSteps++; } } assertEquals(expectedSteps, numSteps); }
private static void assertTraversals(final GraphTraversal t, final Traversal evald) { final List<Step> steps = t.asAdmin().getSteps(); for (int ix = 0; ix < steps.size(); ix++) { assertEquals(steps.get(ix).getClass(), evald.asAdmin().getSteps().get(ix).getClass()); } } }
workingPipeline.asAdmin().getSteps().forEach(admin::addStep); } else { if (needsRememberingPosition(workingPipeline)) { workingPipeline.asAdmin().getSteps().forEach(admin::addStep); } else { GraphTraversal.Admin<S, E> admin = pipeline.asAdmin(); workingPipeline.asAdmin().getSteps().forEach(admin::addStep);
final GraphTraversal scan = TraversalBuilder.toTraversal(scanMap.values().iterator().next()); traversal = graph.traversal().V(); for(Step step : (List<Step>)scan.asAdmin().getSteps()) { traversal.asAdmin().addStep(step);
public static GraphTraversal toTraversal(List<RelNode> relList) { final GraphTraversal traversal = __.identity(); TableDef tableDef = null; for(RelNode rel : relList) { if(rel instanceof GremlinTableScan) { GremlinTableScan tableScan = (GremlinTableScan) rel; tableDef = tableScan.getGremlinTable().getTableDef(); traversal.hasLabel(tableDef.label); } if(rel instanceof GremlinFilter) { GremlinFilter filter = (GremlinFilter) rel; RexNode condition = filter.getCondition(); FilterTranslator translator = new FilterTranslator(tableDef, filter.getRowType().getFieldNames()); GraphTraversal predicates = translator.translateMatch(condition); for(Step step : (List<Step>)predicates.asAdmin().getSteps()) { traversal.asAdmin().addStep(step); } } } return traversal; }
/** * A step modulator that provides a lable to the step that can be accessed later in the traversal by other steps. * * @param stepLabel the name of the step * @param stepLabels additional names for the label * @return the traversal with the modified end step * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#as-step" target="_blank">Reference Documentation - As Step</a> * @since 3.0.0-incubating */ public default GraphTraversal<S, E> as(final String stepLabel, final String... stepLabels) { this.asAdmin().getBytecode().addStep(Symbols.as, stepLabel, stepLabels); if (this.asAdmin().getSteps().size() == 0) this.asAdmin().addStep(new StartStep<>(this.asAdmin())); final Step<?, E> endStep = this.asAdmin().getEndStep(); endStep.addLabel(stepLabel); for (final String label : stepLabels) { endStep.addLabel(label); } return this; }
private boolean isStartedOrSubTraversal() { boolean hasSteps = g.asAdmin().getSteps().size() > 0; boolean isSubTraversal = g.asAdmin().getGraph() .filter(graph -> graph instanceof EmptyGraph) .isPresent(); return hasSteps || isSubTraversal; }
private static boolean needsRememberingPosition(GraphTraversal<?, ?> pipeline) { for (Step<?, ?> p : pipeline.asAdmin().getSteps()) { if (p instanceof VertexStep || p instanceof EdgeVertexStep || p instanceof EdgeOtherVertexStep) { return true; } } return false; }
private static void assertTraversals(final GraphTraversal t, final Traversal evald) { final List<Step> steps = t.asAdmin().getSteps(); for (int ix = 0; ix < steps.size(); ix++) { assertEquals(steps.get(ix).getClass(), evald.asAdmin().getSteps().get(ix).getClass()); } } }
public static GraphTraversal addTraversal(GraphTraversal<?, ?> traversal, GraphTraversal<?, ?> addMe) { for(Step step : addMe.asAdmin().getSteps()) { traversal.asAdmin().addStep(step); } return traversal; } }
public static QueryHolder rootStep(GraphTraversal<?, ?> traversal) { for (final Step<?, ?> step : traversal.asAdmin().getSteps()) { if (step instanceof QueryHolder) { return ((QueryHolder) step); } } return null; } }
/** * A step modulator that provides a lable to the step that can be accessed later in the traversal by other steps. * * @param stepLabel the name of the step * @param stepLabels additional names for the label * @return the traversal with the modified end step * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#as-step" target="_blank">Reference Documentation - As Step</a> * @since 3.0.0-incubating */ public default GraphTraversal<S, E> as(final String stepLabel, final String... stepLabels) { this.asAdmin().getBytecode().addStep(Symbols.as, stepLabel, stepLabels); if (this.asAdmin().getSteps().size() == 0) this.asAdmin().addStep(new StartStep<>(this.asAdmin())); final Step<?, E> endStep = this.asAdmin().getEndStep(); endStep.addLabel(stepLabel); for (final String label : stepLabels) { endStep.addLabel(label); } return this; }
public static QueryHolder rootStep(GraphTraversal<?, ?> traversal) { for (final Step<?, ?> step : traversal.asAdmin().getSteps()) { if (step instanceof QueryHolder) { return ((QueryHolder) step); } } return null; } }