Skip to content

Instantly share code, notes, and snippets.

@okram
Created May 14, 2014 17:52
Show Gist options
  • Save okram/0ba7b8539eec39d7c1ae to your computer and use it in GitHub Desktop.
Save okram/0ba7b8539eec39d7c1ae to your computer and use it in GitHub Desktop.
//////
public GraphTraversal<Edge, Edge> start() {
final TinkerEdge edge = this;
final GraphTraversal<Edge, Edge> traversal = new DefaultGraphTraversal<Edge, Edge>() {
public GraphTraversal<Edge, Edge> submit(final TraversalEngine engine) {
if (engine instanceof GraphComputer) {
this.optimizers().unregister(TinkerGraphStepOptimizer.class);
final String label = this.getSteps().get(0).getAs();
TraversalHelper.removeStep(0, this);
final Step identityStep = new IdentityStep(this);
if (TraversalHelper.isLabeled(label))
identityStep.setAs(label);
TraversalHelper.insertStep(identityStep, 0, this);
TraversalHelper.insertStep(new HasStep(this, new HasContainer(Element.ID, Compare.EQUAL, edge.getId())), 0, this);
TraversalHelper.insertStep(new TinkerGraphStep<>(this, Edge.class, edge.graph), 0, this);
}
return super.submit(engine);
}
};
return (GraphTraversal) traversal.addStep(new StartStep<>(traversal, this));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment