private static GraphTraversal<?, ?> transform(final E_NotExists expression) { final OpBGP opBGP = (OpBGP) expression.getGraphPattern(); final List<Triple> triples = opBGP.getPattern().getList(); if (triples.size() != 1) throw new IllegalStateException("Unhandled NOT EXISTS pattern"); final GraphTraversal<?, ?> traversal = TraversalBuilder.transform(triples.get(0)); final Step endStep = traversal.asAdmin().getEndStep(); final String label = (String) endStep.getLabels().iterator().next(); endStep.removeLabel(label); return __.not(traversal); } }
@Override public Traversal<Vertex, String> get_g_V_whereXnotXoutXcreatedXXX_name() { return g.V().where(not(out("created"))).values("name"); }
@Override public Traversal<Vertex, Map<String, Object>> get_g_V_matchXa__a_out_b__notXa_created_bXX() { return g.V().match( as("a").out().as("b"), not(as("a").out("created").as("b"))); }
@Override public Traversal<Vertex, Map<String, Object>> get_g_V_asXaX_outXcreatedX_asXbX_whereXandXasXbX_in__notXasXaX_outXcreatedX_hasXname_rippleXXX_selectXa_bX() { return g.V().as("a").out("created").as("b").where(and(as("b").in(), not(as("a").out("created").has("name", "ripple")))).select("a", "b"); }
.where(__.not(__.otherV().hasId((v10086.id())))) .toList(); Assert.assertEquals(3, edges.size());
public static GraphTraversal<?, ?> transform(final E_NotExists expression) { final OpBGP opBGP = (OpBGP) expression.getGraphPattern(); final List<Triple> triples = opBGP.getPattern().getList(); if (triples.size() != 1) throw new IllegalStateException("Unhandled NOT EXISTS pattern"); final GraphTraversal<?, ?> traversal = TraversalBuilder.transform(triples.get(0)); final Step endStep = traversal.asAdmin().getEndStep(); final String label = (String) endStep.getLabels().iterator().next(); endStep.removeLabel(label); return __.not(traversal); }
@Override public Traversal<Vertex, String> get_g_V_whereXnotXoutXcreatedXXX_name() { return g.V().where(not(out("created"))).values("name"); }
private Vertex getLastProperty(Object collectionId) { return traversal.V(collectionId) .out(HAS_INITIAL_PROPERTY_RELATION_NAME) .until(__.not(__.outE(HAS_NEXT_PROPERTY_RELATION_NAME))) .repeat(__.out(HAS_NEXT_PROPERTY_RELATION_NAME)) .next(); }
static <T> GraphTraversal<T, Vertex> outSubs(GraphTraversal<T, Vertex> traversal) { // These traversals make sure to only navigate types by checking they do not have a `THING_TYPE_LABEL_ID` property return union(traversal, ImmutableSet.of( __.<Vertex>not(__.has(THING_TYPE_LABEL_ID.name())).not(__.hasLabel(Schema.BaseType.SHARD.name())), __.repeat(__.out(SUB.getLabel())).emit() )).unfold(); }
static <T> GraphTraversal<T, Vertex> inSubs(GraphTraversal<T, Vertex> traversal) { // These traversals make sure to only navigate types by checking they do not have a `THING_TYPE_LABEL_ID` property return union(traversal, ImmutableSet.of( __.<Vertex>not(__.has(THING_TYPE_LABEL_ID.name())).not(__.hasLabel(Schema.BaseType.SHARD.name())), __.repeat(__.in(SUB.getLabel())).emit() )).unfold(); }
@Override public Traversal<Vertex, Map<String, Object>> get_g_V_matchXa__a_out_b__notXa_created_bXX() { return g.V().match( as("a").out().as("b"), not(as("a").out("created").as("b"))); }
private Vertex getLastProperty() { return graphWrapper.getGraph().traversal().V(vertex.id()) .out(HAS_INITIAL_PROPERTY_RELATION_NAME) .until(__.not(__.outE(HAS_NEXT_PROPERTY_RELATION_NAME))) .repeat(__.out(HAS_NEXT_PROPERTY_RELATION_NAME)) .next(); }
@Override public Traversal<Vertex, Map<String, Object>> get_g_V_asXaX_outXcreatedX_asXbX_whereXandXasXbX_in__notXasXaX_outXcreatedX_hasXname_rippleXXX_selectXa_bX() { return g.V().as("a").out("created").as("b").where(and(as("b").in(), not(as("a").out("created").has("name", "ripple")))).select("a", "b"); }
GraphTraversal<? extends Element, ? extends Element> translate(Expr exp, int node){ if (isDebug()){ System.out.println("SP2T: " + exp); } switch (exp.oper()){ case ExprType.AND: return __.and(translate(exp.getExp(0), node), translate(exp.getExp(1), node)); case ExprType.OR: return __.or(translate(exp.getExp(0), node), translate(exp.getExp(1), node)); case ExprType.NOT: return __.not(translate(exp.getExp(0), node)); default: return filter(exp, node); } }