private Iterable<TitanVertex> executeIndividualVertices(InternalVertex vertex, BaseVertexCentricQuery baseQuery) { VertexCentricQuery query = constructQuery(vertex, baseQuery); if (useSimpleQueryProcessor(query, vertex)) return new SimpleVertexQueryProcessor(query,tx).vertexIds(); else return edges2Vertices((Iterable) executeIndividualRelations(vertex,baseQuery), query.getVertex()); }
private VertexList executeIndividualVertexIds(InternalVertex vertex, BaseVertexCentricQuery baseQuery) { VertexCentricQuery query = constructQuery(vertex, baseQuery); if (useSimpleQueryProcessor(query, vertex)) return new SimpleVertexQueryProcessor(query,tx).vertexIds(); return edges2VertexIds((Iterable) executeIndividualRelations(vertex,baseQuery), vertex); }
@Override public Iterable<TitanVertexProperty> properties() { return (Iterable)(isImplicitKeyQuery(RelationCategory.PROPERTY)? executeImplicitKeyQuery(vertex): execute(RelationCategory.PROPERTY, new RelationConstructor())); }
@Override public Map<TitanVertex, Iterable<TitanRelation>> relations() { return (Map)(isImplicitKeyQuery(RelationCategory.RELATION)? executeImplicitKeyQuery(): execute(RelationCategory.RELATION, new RelationConstructor())); }
@Override public Iterator<Entry> iterator() { Iterator<Entry> iter; //If there is a limit we need to wrap the basic iterator in a LimitAdjustingIterator which ensures the right number //of elements is returned. Otherwise we just return the basic iterator. if (sliceQuery.hasLimit() && sliceQuery.getLimit()!=query.getLimit()) { iter = new LimitAdjustingIterator(); } else { iter = getBasicIterator(); } return iter; }
@Override public Map<TitanVertex, VertexList> vertexIds() { return execute(RelationCategory.EDGE, new VertexIdConstructor()); }
@Override public Map<TitanVertex, Iterable<TitanEdge>> edges() { return (Map) execute(RelationCategory.EDGE, new RelationConstructor()); }
public VertexLongList toVertexLongList() { LongArrayList list = toLongList(vertices); return new VertexLongList(tx,list,sorted); }
@Override public Iterable<TitanVertex> vertices() { return (Iterable)execute(RelationCategory.EDGE,new VertexConstructor()); }
@Override public Map<TitanVertex, Iterable<TitanVertex>> vertices() { return execute(RelationCategory.EDGE, new VertexConstructor()); }
@Override public Iterable<TitanEdge> edges() { return (Iterable)execute(RelationCategory.EDGE,new RelationConstructor()); }
@Override public VertexList vertexIds() { return execute(RelationCategory.EDGE,new VertexIdConstructor()); }
/** * Removes any query partition restriction for this query * * @return */ public Q noPartitionRestriction() { this.restrict2Partitions = false; return getThis(); }
@Override public TitanMultiVertexQuery addAllVertices(Collection<? extends Vertex> vertices) { for (Vertex v : vertices) addVertex(v); return this; }
@Override public QueryBuilder has(String type, Object value) { super.has(type, value); return this; }
@Override public QueryBuilder keys(String... keys) { super.keys(keys); return this; }
@Override public QueryBuilder orderBy(String key, Order order) { super.orderBy(key, order); return this; }
@Override public QueryBuilder types(RelationType... types) { super.types(types); return this; }
@Override public Iterable<TitanRelation> relations() { return (Iterable)(isImplicitKeyQuery(RelationCategory.RELATION)? executeImplicitKeyQuery(vertex): execute(RelationCategory.RELATION,new RelationConstructor())); }
@Override public Map<TitanVertex, Iterable<TitanVertexProperty>> properties() { return (Map)(isImplicitKeyQuery(RelationCategory.PROPERTY)? executeImplicitKeyQuery(): execute(RelationCategory.PROPERTY, new RelationConstructor())); }