use of com.vaticle.typedb.core.traversal.Traversal in project grakn by graknlabs.
the class GraphProcedure method producer.
@Override
public FunctionalProducer<VertexMap> producer(GraphManager graphMgr, Traversal.Parameters params, Set<Identifier.Variable.Retrievable> filter, int parallelisation) {
if (LOG.isTraceEnabled()) {
LOG.trace(params.toString());
LOG.trace(this.toString());
}
assertWithinFilterBounds(filter);
if (startVertex().id().isRetrievable() && filter.contains(startVertex().id().asVariable().asRetrievable())) {
return async(startVertex().iterator(graphMgr, params).map(// TODO we can reduce the size of the distinct() set if the traversal engine doesn't overgenerate as much
v -> new GraphIterator(graphMgr, v, this, params, filter).distinct()), parallelisation);
} else {
// TODO we can reduce the size of the distinct() set if the traversal engine doesn't overgenerate as much
return async(startVertex().iterator(graphMgr, params).map(v -> new GraphIterator(graphMgr, v, this, params, filter)), parallelisation).distinct();
}
}
Aggregations