![JAR search and dependency download from the Maven repository](/logo.png)
org.unipop.process.start.UniGraphStartStepStrategy Maven / Gradle / Ivy
package org.unipop.process.start;
import org.apache.tinkerpop.gremlin.process.traversal.Step;
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.step.filter.DedupGlobalStep;
import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.AbstractTraversalStrategy;
import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.unipop.process.predicate.PredicatesUtil;
import org.unipop.structure.UniGraph;
public class UniGraphStartStepStrategy extends AbstractTraversalStrategy implements TraversalStrategy.ProviderOptimizationStrategy{
@Override
public void apply(Traversal.Admin, ?> traversal) {
if(TraversalHelper.onGraphComputer(traversal)) return;
Graph graph = traversal.getGraph().get();
if(!(graph instanceof UniGraph)) {
return;
}
UniGraph uniGraph = (UniGraph) graph;
TraversalHelper.getStepsOfClass(GraphStep.class, traversal).forEach(graphStep -> {
final UniGraphStartStep,?> uniGraphStartStep = new UniGraphStartStep<>(graphStep, uniGraph.getControllerManager());
TraversalHelper.replaceStep(graphStep, (Step) uniGraphStartStep, traversal);
PredicatesUtil.collectPredicates(uniGraphStartStep, traversal);
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy