__.filter(new TypeChecker<>(VertexProperty.class)), __.has(partitionKey, P.within(new ArrayList<>(readPartitions))), __.__()).filter(new PartitionKeyHider()); TraversalHelper.insertTraversal(step, choose.asAdmin(), traversal); __.filter(new TypeChecker<>(Vertex.class)), __.properties(step.getPropertyKeys()).has(partitionKey, P.within(new ArrayList<>(readPartitions))).filter(new PartitionKeyHider()).value(), __.__().filter(new PartitionKeyHider())); TraversalHelper.insertTraversal(step, choose.asAdmin(), traversal); traversal.removeStep(step);
private GraphTraversal translateOr(RexNode condition) { List<GraphTraversal> list = new ArrayList<>(); for (RexNode node : RelOptUtil.disjunctions(condition)) { list.addAll(translateAnd(node)); } switch (list.size()) { case 1: return list.get(0); default: Map<String, Object> map = builder.map(); map.put("$or", list); return __.__().or(list.toArray(new GraphTraversal[list.size()])); } }
@Override public GraphTraversal pixyStep(GraphTraversal inputPipe) { GraphTraversal ans = inputPipe; List<GraphTraversal> pipesToMerge = new ArrayList<GraphTraversal>(); for (PixyPipe pixyPipe : orPipes) { GraphTraversal pipeline = pixyPipe.pixyStep(__()); pipesToMerge.add(pipeline); } ans = GraphTraversalExt.pixySplitMerge(ans, pipesToMerge); for (String namedStep : mergeVarsMap.keySet()) { if ((lastNamedOutputStep == null) || !(namedStep.equals(lastNamedOutputStep))) { pixyCoalesce(ans, namedStep); } } // Emit the last named step if (lastNamedOutputStep != null) { pixyCoalesce(ans, lastNamedOutputStep); } return ans; }
__.filter(new TypeChecker<>(VertexProperty.class)), __.has(partitionKey, P.within(new ArrayList<>(readPartitions))), __.__()).filter(new PartitionKeyHider()); TraversalHelper.insertTraversal(step, choose.asAdmin(), traversal); __.filter(new TypeChecker<>(Vertex.class)), __.properties(step.getPropertyKeys()).has(partitionKey, P.within(new ArrayList<>(readPartitions))).filter(new PartitionKeyHider()).value(), __.__().filter(new PartitionKeyHider())); TraversalHelper.insertTraversal(step, choose.asAdmin(), traversal); traversal.removeStep(step);
@Override public GraphTraversal pixyStep(GraphTraversal inputPipe) { GraphTraversal ans = inputPipe; if (inStep != null) { ans = GraphTraversalExt.coalesce(ans, inStep); } if (loopDetails == null) { ans = addAdjStep(ans); } else { ans.repeat(addAdjStep(__())).until(new Predicate<Traverser>() { @Override public boolean test(Traverser t) { int length = t.loops(); return ((loopDetails.getMaxLoops() != 0) && length >= loopDetails.getMaxLoops()); } }).emit(new Predicate<Traverser>() { @Override public boolean test(Traverser t) { int length = t.loops(); return length >= loopDetails.getMinLoops(); } }); ans = ans.as(loopDetails.getLoopVarName()); } if (outStep != null) { ans = ans.as(outStep); } return ans; }