@Override public Traversal<Vertex, String> get_g_V_chooseXhasLabelXpersonX_and_outXcreatedX__outXknowsX__identityX_name() { return g.V().choose(hasLabel("person").and().out("created"), out("knows"), identity()).values("name"); }
/** * Routes the current traverser to a particular traversal branch option which allows the creation of if-then * like semantics within a traversal. * * @param traversalPredicate the traversal used to determine the "if" portion of the if-then-else * @param trueChoice the traversal to execute in the event the {@code traversalPredicate} returns true * @return the traversal with the appended {@link ChooseStep} * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#choose-step" target="_blank">Reference Documentation - Choose Step</a> * @since 3.2.4 */ public default <E2> GraphTraversal<S, E2> choose(final Traversal<?, ?> traversalPredicate, final Traversal<?, E2> trueChoice) { this.asAdmin().getBytecode().addStep(Symbols.choose, traversalPredicate, trueChoice); return this.asAdmin().addStep(new ChooseStep<E, E2, Boolean>(this.asAdmin(), (Traversal.Admin<E, ?>) traversalPredicate, (Traversal.Admin<E, E2>) trueChoice, (Traversal.Admin<E, E2>) __.identity())); }
@Override public Traversal<Vertex, String> get_g_V_chooseXlabelX_optionXblah__outXknowsXX_optionXbleep__outXcreatedXX_optionXnone__identityX_name() { return g.V().choose(label()) .option("blah", out("knows")) .option("bleep", out("created")) .option(TraversalOptionParent.Pick.none, identity()).values("name"); }
final Traversal.Admin parentTraversal = filterStep.getTraversal(); final Step notStep = new NotStep<>(parentTraversal, traversal.getSteps().isEmpty() ? __.identity() : traversal); filterStep.getLabels().forEach(notStep::addLabel); TraversalHelper.replaceStep(filterStep, notStep, parentTraversal); inner = __.identity().asAdmin();
/** * Routes the current traverser to a particular traversal branch option which allows the creation of if-then * like semantics within a traversal. * * @param choosePredicate the function used to determine the "if" portion of the if-then-else * @param trueChoice the traversal to execute in the event the {@code traversalPredicate} returns true * @return the traversal with the appended {@link ChooseStep} * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#choose-step" target="_blank">Reference Documentation - Choose Step</a> * @since 3.2.4 */ public default <E2> GraphTraversal<S, E2> choose(final Predicate<E> choosePredicate, final Traversal<?, E2> trueChoice) { this.asAdmin().getBytecode().addStep(Symbols.choose, choosePredicate, trueChoice); return this.asAdmin().addStep(new ChooseStep<E, E2, Boolean>(this.asAdmin(), (Traversal.Admin<E, ?>) __.filter(new PredicateTraverser<>(choosePredicate)), (Traversal.Admin<E, E2>) trueChoice, (Traversal.Admin<E, E2>) __.identity())); }
@Override public Traversal<Vertex, Map<Object, List<Object>>> get_g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_byXinEXcreatedXX_timesX1X_byXpriorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX() { return g.V().hasLabel("software").has("name", "ripple").pageRank(1.0).by(__.inE("created")).times(1).by("priors").in("created").union(__.both(), __.identity()).valueMap("name", "priors"); }
@Override public Traversal<Vertex, Map<Object, List<Object>>> get_g_V_hasXname_rippleX_inXcreatedX_peerPressure_withXedges_outEX_withXpropertyName_clusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX() { return g.V().has("name", "ripple").in("created").peerPressure().with(PeerPressure.edges,__.outE()).with(PeerPressure.propertyName, "cluster").repeat(__.union(__.identity(), __.both())).times(2).dedup().valueMap("name", "cluster"); } }
final TraversalVertexProgramStep traversalVertexProgramStep = new TraversalVertexProgramStep(traversal, __.identity().asAdmin()); traversal.addStep(traversalVertexProgramStep); traversal.addStep(new ComputerResultStep<>(traversal));
@Override public Traversal<Vertex, Map<Object, List<Object>>> get_g_V_hasXname_rippleX_inXcreatedX_peerPressure_byXoutEX_byXclusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX() { return g.V().has("name", "ripple").in("created").peerPressure().by(__.outE()).by("cluster").repeat(__.union(__.identity(), __.both())).times(2).dedup().valueMap("name", "cluster"); }
/** * A type-safe way to do `__.union(a, b)`, as `Fragments.union(ImmutableSet.of(a, b))`. * This avoids issues with unchecked varargs. */ static <S, E> GraphTraversal<S, E> union(Iterable<GraphTraversal<? super S, ? extends E>> traversals) { return union(__.identity(), traversals); }
@Override public GraphTraversal<Vertex, ? extends Element> applyTraversalInner( GraphTraversal<Vertex, ? extends Element> traversal, EmbeddedGraknTx<?> graph, Collection<Var> vars) { return Fragments.union(traversal, ImmutableSet.of( Fragments.isVertex(__.identity()).out(ISA.getLabel()).out(SHARD.getLabel()), edgeTraversal() )); }
@SuppressWarnings("unchecked") static GraphTraversal<Vertex, Vertex> inSubs(GraphTraversal<Vertex, Vertex> traversal) { return traversal.union(__.identity(), __.repeat(__.in(SUB.getLabel())).emit()).unfold(); } }
private Iterator<Vertex> collectionsFor(Vertex entity) { return traversal.V(entity.id()) .in(HAS_ENTITY_RELATION_NAME) .in(HAS_ENTITY_NODE_RELATION_NAME) .union(__.identity(), __.out(HAS_ARCHETYPE_RELATION_NAME)); }
private void removeAllRawCollections(Vertex vreV) { traversal.V(vreV.id()) .out(RAW_COLLECTION_EDGE_NAME) .union( __.out(RAW_ITEM_EDGE_NAME), __.out(RAW_PROPERTY_EDGE_NAME), __.identity() //the collection ) .drop() .toList();//force traversal and thus side-effects }
@Override public Traversal<Vertex, String> get_g_V_chooseXlabelX_optionXblah__outXknowsXX_optionXbleep__outXcreatedXX_optionXnone__identityX_name() { return g.V().choose(label()) .option("blah", out("knows")) .option("bleep", out("created")) .option(TraversalOptionParent.Pick.none, identity()).values("name"); }
@Override public Traversal<Vertex, Map<Object, List<Object>>> get_g_V_hasLabelXsoftwareX_hasXname_rippleX_pageRankX1X_byXinEXcreatedXX_timesX1X_byXpriorsX_inXcreatedX_unionXboth__identityX_valueMapXname_priorsX() { return g.V().hasLabel("software").has("name", "ripple").pageRank(1.0).by(__.inE("created")).times(1).by("priors").in("created").union(__.both(), __.identity()).valueMap("name", "priors"); }
@Override public Traversal<Vertex, Map<Object, List<Object>>> get_g_V_hasXname_rippleX_inXcreatedX_peerPressure_withXedges_outEX_withXpropertyName_clusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX() { return g.V().has("name", "ripple").in("created").peerPressure().with(PeerPressure.edges,__.outE()).with(PeerPressure.propertyName, "cluster").repeat(__.union(__.identity(), __.both())).times(2).dedup().valueMap("name", "cluster"); } }
private GraphTraversal<Element, Vertex> reifiedRelationTraversal(EmbeddedGraknTx<?> tx, Collection<Var> vars) { GraphTraversal<Element, Vertex> traversal = Fragments.isVertex(__.identity()); GraphTraversal<Element, Edge> edgeTraversal = traversal.outE(ROLE_PLAYER.getLabel()).as(edge().name()); // Filter by any provided type labels applyLabelsToTraversal(edgeTraversal, ROLE_LABEL_ID, roleLabels(), tx); applyLabelsToTraversal(edgeTraversal, RELATIONSHIP_TYPE_LABEL_ID, relationTypeLabels(), tx); traverseToRole(edgeTraversal, role(), ROLE_LABEL_ID, vars); return edgeTraversal.inV(); }
@Override public Traversal<Vertex, Map<Object, List<Object>>> get_g_V_hasXname_rippleX_inXcreatedX_peerPressure_byXoutEX_byXclusterX_repeatXunionXidentity__bothX_timesX2X_dedup_valueMapXname_clusterX() { return g.V().has("name", "ripple").in("created").peerPressure().by(__.outE()).by("cluster").repeat(__.union(__.identity(), __.both())).times(2).dedup().valueMap("name", "cluster"); }
private GraphTraversal<Element, Vertex> edgeRelationTraversal( EmbeddedGraknTx<?> tx, Direction direction, Schema.EdgeProperty roleProperty, Collection<Var> vars) { GraphTraversal<Element, Edge> edgeTraversal = Fragments.isEdge(__.identity()); // Filter by any provided type labels applyLabelsToTraversal(edgeTraversal, roleProperty, roleLabels(), tx); applyLabelsToTraversal(edgeTraversal, RELATIONSHIP_TYPE_LABEL_ID, relationTypeLabels(), tx); traverseToRole(edgeTraversal, role(), roleProperty, vars); // Identify the relation - role-player pair by combining the relationship edge and direction into a map edgeTraversal.as(RELATION_EDGE.name()).constant(direction).as(RELATION_DIRECTION.name()); edgeTraversal.select(Pop.last, RELATION_EDGE.name(), RELATION_DIRECTION.name()).as(edge().name()).select(RELATION_EDGE.name()); return edgeTraversal.toV(direction); }