@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(); } }
results = tx.multiQuery(qvs).direction(IN).labels("connect").edges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(1, size(result)); results = tx.multiQuery(Sets.newHashSet(qvs)).labels("connect").edges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(2, size(result)); results = tx.multiQuery(qvs).labels("knows").edges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(0, size(result)); results = tx.multiQuery(qvs).edges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(4, size(result)); results2 = tx.multiQuery(qvs).properties(); for (Iterable<TitanVertexProperty> result : results2.values()) assertEquals(1, size(result)); results2 = tx.multiQuery(qvs).keys("name").properties(); for (Iterable<TitanVertexProperty> result : results2.values()) assertEquals(1, size(result)); results = tx.multiQuery(qvs).direction(IN).labels("connect").edges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(1, size(result)); results = tx.multiQuery(Sets.newHashSet(qvs)).labels("connect").edges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(2, size(result)); results = tx.multiQuery(qvs).labels("knows").edges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(0, size(result)); results = tx.multiQuery(qvs).edges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(4, size(result)); results2 = tx.multiQuery(qvs).properties(); for (Iterable<TitanVertexProperty> result : results2.values()) assertEquals(1, size(result)); results2 = tx.multiQuery(qvs).keys("name").properties(); for (Iterable<TitanVertexProperty> result : results2.values()) assertEquals(1, size(result)); qvs2[0].addEdge("connect", qvs2[qvs2.length - 1]); qvs2[qvs2.length - 1].addEdge("connect", qvs2[0]); results = tx.multiQuery(qvs2).direction(IN).labels("connect").edges();
@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(); } }
results = tx.multiQuery(qvs).direction(IN).labels("connect").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(1, Iterables.size(result)); results = tx.multiQuery(Sets.newHashSet(qvs)).labels("connect").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(2, Iterables.size(result)); results = tx.multiQuery(qvs).labels("knows").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(0, Iterables.size(result)); results = tx.multiQuery(qvs).titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(4, Iterables.size(result)); results2 = tx.multiQuery(qvs).properties(); for (Iterable<TitanProperty> result : results2.values()) assertEquals(1, Iterables.size(result)); results2 = tx.multiQuery(qvs).keys("name").properties(); for (Iterable<TitanProperty> result : results2.values()) assertEquals(1, Iterables.size(result)); results = tx.multiQuery(qvs).direction(IN).labels("connect").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(1, Iterables.size(result)); results = tx.multiQuery(Sets.newHashSet(qvs)).labels("connect").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(2, Iterables.size(result)); results = tx.multiQuery(qvs).labels("knows").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(0, Iterables.size(result)); results = tx.multiQuery(qvs).titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(4, Iterables.size(result)); results2 = tx.multiQuery(qvs).properties(); for (Iterable<TitanProperty> result : results2.values()) assertEquals(1, Iterables.size(result)); results2 = tx.multiQuery(qvs).keys("name").properties(); for (Iterable<TitanProperty> result : results2.values()) assertEquals(1, Iterables.size(result)); qvs2[0].addEdge("connect",qvs2[qvs2.length-1]); qvs2[qvs2.length-1].addEdge("connect", qvs2[0]); results = tx.multiQuery(qvs2).direction(IN).labels("connect").titanEdges();
results = tx.multiQuery(qvs).direction(IN).labels("connect").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(1, Iterables.size(result)); results = tx.multiQuery(Sets.newHashSet(qvs)).labels("connect").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(2, Iterables.size(result)); results = tx.multiQuery(qvs).labels("knows").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(0, Iterables.size(result)); results = tx.multiQuery(qvs).titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(4, Iterables.size(result)); results2 = tx.multiQuery(qvs).properties(); for (Iterable<TitanProperty> result : results2.values()) assertEquals(1, Iterables.size(result)); results2 = tx.multiQuery(qvs).keys("name").properties(); for (Iterable<TitanProperty> result : results2.values()) assertEquals(1, Iterables.size(result)); results = tx.multiQuery(qvs).direction(IN).labels("connect").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(1, Iterables.size(result)); results = tx.multiQuery(Sets.newHashSet(qvs)).labels("connect").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(2, Iterables.size(result)); results = tx.multiQuery(qvs).labels("knows").titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(0, Iterables.size(result)); results = tx.multiQuery(qvs).titanEdges(); for (Iterable<TitanEdge> result : results.values()) assertEquals(4, Iterables.size(result)); results2 = tx.multiQuery(qvs).properties(); for (Iterable<TitanProperty> result : results2.values()) assertEquals(1, Iterables.size(result)); results2 = tx.multiQuery(qvs).keys("name").properties(); for (Iterable<TitanProperty> result : results2.values()) assertEquals(1, Iterables.size(result)); qvs2[0].addEdge("connect",qvs2[qvs2.length-1]); qvs2[qvs2.length-1].addEdge("connect", qvs2[0]); results = tx.multiQuery(qvs2).direction(IN).labels("connect").titanEdges();