@Override public Iterator<Edge> search(SearchVertexQuery uniQuery) { Map<DocumentEdgeSchema, QueryBuilder> schemas = edgeSchemas.stream() .filter(schema -> this.traversalFilter.filter(schema, uniQuery.getTraversal())) .collect(new SearchCollector<>((schema) -> schema.getSearch(uniQuery))); return search(uniQuery, schemas); }
@Override public Iterator<Edge> search(SearchVertexQuery uniQuery) { RestCollector<RestEdgeSchema, BaseRequest, Edge> collector = new RestCollector<>(schema -> schema.getSearch(uniQuery), (schema, result) -> schema.parseResults(result, uniQuery)); Map<RestEdgeSchema, BaseRequest> schemas = edgeSchemas.stream() .filter(schema -> this.traversalFilter.filter(schema, uniQuery.getTraversal())).collect(collector); return search(uniQuery, schemas, collector); }
@Override public Iterator<Edge> search(SearchVertexQuery uniQuery) { SelectCollector<JdbcSchema<Edge>, Select, Edge> collector = new SelectCollector<>( schema -> schema.getSearch(uniQuery, ((JdbcEdgeSchema) schema).toPredicates(uniQuery.getVertices(), uniQuery.getDirection(), uniQuery.getPredicates())), (schema, results) -> schema.parseResults(results, uniQuery) ); Map<JdbcSchema<Edge>, Select> selects = edgeSchemas.stream() .filter(schema -> this.traversalFilter.filter(schema, uniQuery.getTraversal())).collect(collector); return this.search(uniQuery, selects, collector); }