@SuppressWarnings("deprecation") private void initialize() { assert !initialized; initialized = true; assert getReturnType().forProperties() || (orders.isEmpty() && hasContainers.isEmpty()); if (!starts.hasNext()) throw FastNoSuchElementException.instance(); List<Traverser.Admin<Element>> elements = new ArrayList<>(); starts.forEachRemaining(v -> elements.add(v)); starts.add(elements.iterator()); assert elements.size() > 0; useMultiQuery = useMultiQuery && elements.stream().noneMatch(e -> !(e.get() instanceof Vertex)); if (useMultiQuery) { TitanMultiVertexQuery mquery = TitanTraversalUtil.getTx(traversal).multiQuery(); elements.forEach(e -> mquery.addVertex((Vertex) e.get())); makeQuery(mquery); multiQueryResults = mquery.properties(); } }
@SuppressWarnings("deprecation") private void initialize() { assert !initialized; initialized = true; if (useMultiQuery) { if (!starts.hasNext()) throw FastNoSuchElementException.instance(); TitanMultiVertexQuery mquery = TitanTraversalUtil.getTx(traversal).multiQuery(); List<Traverser.Admin<Vertex>> vertices = new ArrayList<>(); starts.forEachRemaining(v -> { vertices.add(v); mquery.addVertex(v.get()); }); starts.add(vertices.iterator()); assert vertices.size() > 0; makeQuery(mquery); multiQueryResults = (Vertex.class.isAssignableFrom(getReturnClass())) ? mquery.vertices() : mquery.edges(); } }
@SuppressWarnings("deprecation") private void initialize() { assert !initialized; initialized = true; assert getReturnType().forProperties() || (orders.isEmpty() && hasContainers.isEmpty()); if (!starts.hasNext()) throw FastNoSuchElementException.instance(); final List<Traverser.Admin<Element>> elements = new ArrayList<>(); starts.forEachRemaining(elements::add); starts.add(elements.iterator()); assert elements.size() > 0; useMultiQuery = useMultiQuery && elements.stream().allMatch(e -> e.get() instanceof Vertex); if (useMultiQuery) { final JanusGraphMultiVertexQuery multiQuery = JanusGraphTraversalUtil.getTx(traversal).multiQuery(); elements.forEach(e -> multiQuery.addVertex((Vertex) e.get())); makeQuery(multiQuery); multiQueryResults = multiQuery.properties(); } }
@SuppressWarnings("deprecation") private void initialize() { assert !initialized; initialized = true; if (useMultiQuery) { if (!starts.hasNext()) { throw FastNoSuchElementException.instance(); } final JanusGraphMultiVertexQuery multiQuery = JanusGraphTraversalUtil.getTx(traversal).multiQuery(); final List<Traverser.Admin<Vertex>> vertices = new ArrayList<>(); starts.forEachRemaining(v -> { vertices.add(v); multiQuery.addVertex(v.get()); }); starts.add(vertices.iterator()); assert vertices.size() > 0; makeQuery(multiQuery); multiQueryResults = (Vertex.class.isAssignableFrom(getReturnClass())) ? multiQuery.vertices() : multiQuery.edges(); } }
@Override public boolean hasNextBarrier() { return this.starts.hasNext(); }
@Override public boolean hasNextBarrier() { return this.starts.hasNext(); }
@Override public void processAllStarts() { if (this.starts.hasNext()) super.processAllStarts(); }
@Override public void processAllStarts() { if (this.starts.hasNext()) super.processAllStarts(); }
@Override public void processAllStarts() { if (this.starts.hasNext()) super.processAllStarts(); }
@Override public void processAllStarts() { if (this.starts.hasNext()) super.processAllStarts(); }
public void processAllStarts() { while (this.starts.hasNext()) this.starts.next(); }
@Override public void processAllStarts() { if (this.hasProcessedOnce && !this.starts.hasNext()) return; this.hasProcessedOnce = true; if (this.seed == null) this.seed = this.seedSupplier.get(); while (this.starts.hasNext()) this.seed = this.reducingBiOperator.apply(this.seed, this.projectTraverser(this.starts.next())); }
@Override public void processAllStarts() { if (this.starts.hasNext()) { if (Integer.MAX_VALUE == this.maxBarrierSize) { this.starts.forEachRemaining(this.traverserSet::add); } else { while (this.starts.hasNext() && this.traverserSet.size() < this.maxBarrierSize) { this.traverserSet.add(this.starts.next()); } } } }
@Override public void processAllStarts() { while (this.starts.hasNext()) { this.traverserSet.add(this.createProjectedTraverser(this.starts.next())); } }
@Override public void processAllStarts() { while (this.starts.hasNext()) { this.traverserSet.add(this.createProjectedTraverser(this.starts.next())); } }
@Override protected Traverser.Admin<Boolean> processNextStart() throws NoSuchElementException { return this.starts.hasNext() ? this.starts.next().split(Boolean.TRUE, this) : this.getTraversal().getTraverserGenerator().generate(Boolean.FALSE, (Step) this, 1L); } }
@Override public void processAllStarts() { while (this.starts.hasNext() && (this.maxBarrierSize == Integer.MAX_VALUE || this.barrier.size() < this.maxBarrierSize)) { final Traverser.Admin<S> traverser = this.starts.next(); traverser.setStepId(this.getNextStep().getId()); // when barrier is reloaded, the traversers should be at the next step this.barrier.add(traverser); } }
@Override public void processAllStarts() { if (this.starts.hasNext()) { final BulkSet<Object> bulkSet = new BulkSet<>(); while (this.starts.hasNext()) { final Traverser.Admin<S> traverser = this.starts.next(); bulkSet.add(TraversalUtil.applyNullable(traverser, this.aggregateTraversal), traverser.bulk()); traverser.setStepId(this.getNextStep().getId()); // when barrier is reloaded, the traversers should be at the next step this.barrier.add(traverser); } this.getTraversal().getSideEffects().add(this.sideEffectKey, bulkSet); } }