private <A extends Element> Iterator<A> iteratorList(final Iterator<A> iterator) { final List<A> list = new ArrayList<>(); while (iterator.hasNext()) { final A e = iterator.next(); if (HasContainer.testAll(e, this.getHasContainers())) list.add(e); } return list.iterator(); }
private <E extends Element> Iterator<E> iteratorList(final Iterator<E> iterator) { final List<E> list = new ArrayList<>(); while (iterator.hasNext()) { final E e = iterator.next(); if (HasContainer.testAll(e, this.hasContainers)) list.add(e); } return list.iterator(); }
@SuppressWarnings("unchecked") public static <V> Iterator<V> filterResult( List<HasContainer> hasContainers, Iterator<? extends Element> iterator) { Iterator<?> result = new FilterIterator<>(iterator, elem -> { return HasContainer.testAll(elem, hasContainers); }); return (Iterator<V>) result; }
@Override protected boolean filter(final Traverser.Admin<S> traverser) { return HasContainer.testAll(traverser.get(), this.hasContainers); }
private Iterator<? extends Edge> edges() { if (null == this.ids) return Collections.emptyIterator(); return IteratorUtils.filter(this.getTraversal().getGraph().get().edges(this.ids), edge -> HasContainer.testAll(edge, this.hasContainers)); }
private Iterator<? extends Edge> edges() { final TinkerGraph graph = (TinkerGraph) this.getTraversal().getGraph().get(); final HasContainer indexedContainer = getIndexKey(Edge.class); // ids are present, filter on them first if (null == this.ids) return Collections.emptyIterator(); else if (this.ids.length > 0) return this.iteratorList(graph.edges(this.ids)); else return null == indexedContainer ? this.iteratorList(graph.edges()) : TinkerHelper.queryEdgeIndex(graph, indexedContainer.getKey(), indexedContainer.getPredicate().getValue()).stream() .filter(edge -> HasContainer.testAll(edge, this.hasContainers)) .collect(Collectors.<Edge>toList()).iterator(); }
return IteratorUtils.filter(graph.vertices(ids), vertex -> HasContainer.testAll(vertex, hasContainers)); .filter(getNodePredicate()) .map(node -> (Vertex) new Neo4jVertex(node, graph)) .filter(vertex -> HasContainer.testAll(vertex, hasContainers)), .filter(vertex -> HasContainer.testAll(vertex, hasContainers))).iterator(); .filter(getNodePredicate()) .map(node -> (Vertex) new Neo4jVertex(node, graph)) .filter(vertex -> HasContainer.testAll(vertex, hasContainers)).iterator(); } else { return IteratorUtils.filter(graph.vertices(), vertex -> HasContainer.testAll(vertex, hasContainers));
return IteratorUtils.filter(graph.vertices(ids), vertex -> HasContainer.testAll(vertex, hasContainers)); return IteratorUtils.stream(graph.getBaseGraph().findNodes(label.get(), hasContainer.getKey(), hasContainer.getValue())) .map(node -> (Vertex) new Neo4jVertex(node, graph)) .filter(vertex -> HasContainer.testAll(vertex, hasContainers)).iterator(); .filter(vertex -> HasContainer.testAll(vertex, hasContainers)).iterator(); } else { return IteratorUtils.filter(graph.vertices(), vertex -> HasContainer.testAll(vertex, hasContainers));
private Iterator<? extends Vertex> vertices() { final TinkerGraph graph = (TinkerGraph) this.getTraversal().getGraph().get(); final HasContainer indexedContainer = getIndexKey(Vertex.class); // ids are present, filter on them first if (null == this.ids) return Collections.emptyIterator(); else if (this.ids.length > 0) return this.iteratorList(graph.vertices(this.ids)); else return null == indexedContainer ? this.iteratorList(graph.vertices()) : IteratorUtils.filter(TinkerHelper.queryVertexIndex(graph, indexedContainer.getKey(), indexedContainer.getPredicate().getValue()).iterator(), vertex -> HasContainer.testAll(vertex, this.hasContainers)); }
private <E extends Element> Iterator<E> iteratorList(final Iterator<E> iterator) { final List<E> list = new ArrayList<>(); while (iterator.hasNext()) { final E e = iterator.next(); if (HasContainer.testAll(e, this.hasContainers)) list.add(e); } return list.iterator(); }
private <X extends Element> Iterator<X> iteratorList(final Iterator<X> iterator) { final List<X> list = new ArrayList<>(); while (iterator.hasNext()) { final X e = iterator.next(); if (HasContainer.testAll(e, this.hasContainers)) list.add(e); } return list.iterator(); }
private <E extends Element> Iterator<E> iteratorList(final Iterator<E> iterator) { final List<E> list = new ArrayList<>(); while (iterator.hasNext()) { final E e = iterator.next(); if (HasContainer.testAll(e, this.hasContainers)) list.add(e); } return list.iterator(); }
@Override protected boolean filter(final Traverser.Admin<S> traverser) { return HasContainer.testAll(traverser.get(), this.hasContainers); }
@SuppressWarnings("unchecked") public static <V> Iterator<V> filterResult( List<HasContainer> hasContainers, Iterator<? extends Element> iterator) { Iterator<?> result = new FilterIterator<>(iterator, elem -> { return HasContainer.testAll(elem, hasContainers); }); return (Iterator<V>) result; }
@Override protected boolean filter(final Traverser.Admin<S> traverser) { return HasContainer.testAll(traverser.get(), this.hasContainers); }
@Override protected boolean filter(final Traverser.Admin<S> traverser) { return HasContainer.testAll(traverser.get(), this.hasContainers); }
private Iterator<? extends Edge> edges() { if (null == this.ids) return Collections.emptyIterator(); return IteratorUtils.filter(this.getTraversal().getGraph().get().edges(this.ids), edge -> HasContainer.testAll(edge, this.hasContainers)); }
private Iterator<? extends Edge> edges() { if (null == this.ids) return Collections.emptyIterator(); return CloseableIteratorUtils.filter(this.getTraversal().getGraph().get().edges(this.ids), edge -> HasContainer.testAll(edge, this.hasContainers)); }
private Iterator<Vertex> lookupVertices(final Traverser.Admin<Vertex> traverser, final List<HasContainer> hasContainers) { // linear scan return CloseableIteratorUtils.filter(traverser.get().vertices(getDirection(), getEdgeLabels()), vertex -> HasContainer.testAll(vertex, hasContainers)); }
private Iterator<? extends Vertex> vertices() { final TinkerGraph graph = (TinkerGraph) this.getTraversal().getGraph().get(); final HasContainer indexedContainer = getIndexKey(Vertex.class); // ids are present, filter on them first if (null == this.ids) return Collections.emptyIterator(); else if (this.ids.length > 0) return this.iteratorList(graph.vertices(this.ids)); else return null == indexedContainer ? this.iteratorList(graph.vertices()) : IteratorUtils.filter(TinkerHelper.queryVertexIndex(graph, indexedContainer.getKey(), indexedContainer.getPredicate().getValue()).iterator(), vertex -> HasContainer.testAll(vertex, this.hasContainers)); }