@Override public QueryBuilder getSearch(DeferredVertexQuery query) { PredicatesHolder predicatesHolder = this.toPredicates(query.getVertices()); QueryBuilder queryBuilder = createQueryBuilder(predicatesHolder); return queryBuilder; }
@Override public QueryBuilder getSearch(DeferredVertexQuery query) { PredicatesHolder predicatesHolder = this.toPredicates(query.getVertices()); QueryBuilder queryBuilder = createQueryBuilder(predicatesHolder); return queryBuilder; } }
@Override public void fetchProperties(DeferredVertexQuery uniQuery) { Map<DocumentVertexSchema, QueryBuilder> schemas = vertexSchemas.stream() .filter(schema -> this.traversalFilter.filter(schema, uniQuery.getTraversal())) .collect(new SearchCollector<>((schema) -> schema.getSearch(uniQuery))); Iterator<Vertex> search = search(uniQuery, schemas); Map<Object, DeferredVertex> vertexMap = uniQuery.getVertices().stream() .collect(Collectors.toMap(UniElement::id, Function.identity(), (a, b) -> a)); search.forEachRemaining(newVertex -> { DeferredVertex deferredVertex = vertexMap.get(newVertex.id()); if (deferredVertex != null) deferredVertex.loadProperties(newVertex); }); }
@Override public void fetchProperties(DeferredVertexQuery uniQuery) { RestCollector<RestVertexSchema, BaseRequest, Vertex> collector = new RestCollector<>(schema -> schema.getSearch(uniQuery), (schema, result) -> schema.parseResults(result, uniQuery)); Map<RestVertexSchema, BaseRequest> schemas = vertexSchemas.stream() .filter(schema -> this.traversalFilter.filter(schema,uniQuery.getTraversal())).collect(collector); Iterator<Vertex> iterator = search(uniQuery, schemas, collector); Map<Object, DeferredVertex> vertexMap = uniQuery.getVertices().stream() .collect(Collectors.toMap(UniElement::id, Function.identity(), (a, b) -> a)); iterator.forEachRemaining(newVertex -> { DeferredVertex deferredVertex = vertexMap.get(newVertex.id()); if (deferredVertex != null) deferredVertex.loadProperties(newVertex); }); }
@Override public void fetchProperties(DeferredVertexQuery uniQuery) { SelectCollector<JdbcSchema<Vertex>, Select, Vertex> collector = new SelectCollector<>( schema -> schema.getSearch(uniQuery, schema.toPredicates(uniQuery.getPredicates())), (schema, results) -> schema.parseResults(results, uniQuery) ); Map<JdbcSchema<Vertex>, Select> selects = vertexSchemas.stream() .filter(schema -> this.traversalFilter.filter(schema, uniQuery.getTraversal())).collect(collector); Iterator<Vertex> searchIterator = this.search(uniQuery, selects, collector); Map<Object, DeferredVertex> vertexMap = uniQuery.getVertices().stream().collect(Collectors.toMap(UniElement::id, Function.identity(), (a, b) -> a)); searchIterator.forEachRemaining(newVertex -> { DeferredVertex deferredVertex = vertexMap.get(newVertex.id()); if (deferredVertex != null) { deferredVertex.loadProperties(newVertex); } }); }
@Override public BaseRequest getSearch(DeferredVertexQuery query) { int limit = query.getOrders() == null || query.getOrders().size() > 0 ? -1 : query.getLimit(); PredicatesHolder predicatesHolder = toPredicates(query.getVertices()); return createSearch(predicatesHolder, limit); }