/** * @see GraphTraversal#union(Traversal[]) */ public static <A, B> GraphTraversal<A, B> union(final Traversal<?, B>... traversals) { return __.<A>start().union(traversals); }
/** * Visiting unions in SPARQL algebra. */ @Override public void visit(final OpUnion opUnion) { final Traversal unionTemp[] = new Traversal[2]; final Traversal unionTemp1[] = new Traversal[traversalList.size() / 2]; final Traversal unionTemp2[] = new Traversal[traversalList.size() / 2]; int count = 0; for (int i = 0; i < traversalList.size(); i++) { if (i < traversalList.size() / 2) unionTemp1[i] = traversalList.get(i); else unionTemp2[count++] = traversalList.get(i); } unionTemp[1] = __.match(unionTemp2); unionTemp[0] = __.match(unionTemp1); traversalList.clear(); traversal = (GraphTraversal<Vertex, ?>) traversal.union(unionTemp); }
@Override public Traversal<Vertex, String> get_g_V_unionXout__inX_name() { return g.V().union(out(), in()).values("name"); }
@Override public Traversal<Vertex, String> get_g_VX1X_unionXrepeatXoutX_timesX2X__outX_name(final Object v1Id) { return g.V(v1Id).union(repeat(out()).times(2), out()).values("name"); }
@Override public Traversal<Vertex, Long> get_g_V_unionXoutXknowsX__outXcreatedX_inXcreatedXX_groupCount_selectXvaluesX_unfold_sum() { return g.V().union(out("knows"), out("created").in("created")).groupCount().select(Column.values).unfold().sum(); }
@Override public Traversal<Vertex, Number> get_g_VX1_2X_unionXoutE_count__inE_count__outE_weight_sumX(final Object v1Id, final Object v2Id) { return g.V(v1Id, v2Id).union(outE().count(), inE().count(), (Traversal) outE().values("weight").sum()); }
@Override public Traversal<Vertex, Map<String, Long>> get_g_V_unionXrepeatXoutX_timesX2X_groupCountXmX_byXlangXX__repeatXinX_timesX2X_groupCountXmX_byXnameXX_capXmX() { return g.V().union( repeat(out()).times(2).groupCount("m").by("lang"), repeat(in()).times(2).groupCount("m").by("name")).cap("m"); }
@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"); }
/** * A type-safe way to do `a.union(b, c)`, as `Fragments.union(a, ImmutableSet.of(b, c))`. * This avoids issues with unchecked varargs. */ static <S, E1, E2> GraphTraversal<S, E2> union( GraphTraversal<S, ? extends E1> start, Iterable<GraphTraversal<? super E1, ? extends E2>> traversals) { // This is safe, because we know all the arguments are of the right type //noinspection unchecked GraphTraversal<E1, E2>[] array = (GraphTraversal<E1, E2>[]) Iterables.toArray(traversals, GraphTraversal.class); return start.union(array); }
@Override public Traversal<Vertex, Map<String, Long>> get_g_V_outXcreatedX_unionXasXprojectX_inXcreatedX_hasXname_markoX_selectXprojectX__asXprojectX_inXcreatedX_inXknowsX_hasXname_markoX_selectXprojectXX_groupCount_byXnameX() { return (Traversal) g.V().out("created") .union(as("project").in("created").has("name", "marko").select("project"), as("project").in("created").in("knows").has("name", "marko").select("project")).groupCount().by("name"); }
@Override public Traversal<Vertex, Map<String, Long>> get_g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount() { return (Traversal) g.V().union( repeat(union( out("created"), in("created"))).times(2), repeat(union( in("created"), out("created"))).times(2)).label().groupCount(); }
@Override public GremlinSteps<GraphTraversal, P> union(GremlinSteps<GraphTraversal, P>... unionTraversals) { g.union(traversals(unionTraversals)); return this; }
@Override public GraphTraversal<S, Object> transformTraversal(final ChronoSphereTransactionInternal tx, final GraphTraversal<S, I> traversal) { return traversal.union(subQueriesToObjectTraversals(tx, this.subqueries, true)); } }
@SuppressWarnings("unchecked") static GraphTraversal<Vertex, Vertex> inSubs(GraphTraversal<Vertex, Vertex> traversal) { return traversal.union(__.identity(), __.repeat(__.in(SUB.getLabel())).emit()).unfold(); } }
@Override public Traversal<Vertex, String> get_g_VX1X_unionXrepeatXoutX_timesX2X__outX_name(final Object v1Id) { return g.V(v1Id).union(repeat(out()).times(2), out()).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<String, Long>> get_g_V_unionXrepeatXunionXoutXcreatedX__inXcreatedXX_timesX2X__repeatXunionXinXcreatedX__outXcreatedXX_timesX2XX_label_groupCount() { return (Traversal) g.V().union( repeat(union( out("created"), in("created"))).times(2), repeat(union( in("created"), out("created"))).times(2)).label().groupCount(); }
@Override public void query(GraphRewrite event, GraphTraversal<?, Vertex> pipeline) { pipeline.has(DoctypeMetaModel.PROPERTY_PUBLIC_ID, Text.textRegex(REGEX_HIBERNATE)); Traversal<?, ?> systemIDQuery = event.getGraphContext().getQuery(DoctypeMetaModel.class) .getRawTraversal().has(DoctypeMetaModel.PROPERTY_SYSTEM_ID, Text.textRegex(REGEX_HIBERNATE)); GraphTraversal<Vertex, Vertex> systemIdPipeline = new GraphTraversalSource(event.getGraphContext().getGraph()).V(systemIDQuery.toList()); pipeline.union(systemIdPipeline); pipeline.dedup(); } };