Skip to content

Instantly share code, notes, and snippets.

View okram's full-sized avatar
🏠
Working from home

Marko A. Rodriguez okram

🏠
Working from home
View GitHub Profile
public class SideEffectCapTraversalStrategy implements TraversalStrategy.FinalTraversalStrategy {
public void apply(final Traversal traversal) {
if (TraversalHelper.getEnd(traversal) instanceof SideEffectCapable)
traversal.cap(SideEffectCapable.CAP_VARIABLE);
}
}
@Test
public void testPlay2() throws Exception {
Graph g = TinkerGraph.open();
/*GraphMLReader reader = GraphMLReader.create().build();
reader.readGraph(new FileInputStream("data/grateful-dead.xml"), g);*/
for(int i=0; i<1000; i++) {
g.addVertex(Element.ID, i);
}
for(int i=0; i<999; i++) {
g.v(i).addEdge("knows", g.v(i + 1));
final GraphTraversal traversal = new DefaultGraphTraversal<Object, Edge>() {
public GraphTraversal<Object, Edge> submit(final TraversalEngine engine) {
if (engine instanceof GraphComputer) TinkerHelper.prepareTraversalForComputer(this);
return super.submit(engine);
}
};
////////////////
public class TinkerGraphTraversal<S, E> extends DefaultGraphTraversal<S, E> {
GREMLIN 3
gremlin> g.v(1).as('x').out.jump('x'){println it.loops + " " + it.get();it.loops < 4}
1 v[3]
1 v[2]
1 v[4]
2 v[5]
2 v[3]
GREMLIN 2
EXISTING JUMP STEP
gremlin> t = System.currentTimeMillis(); g.V().out().out().out().iterate(); System.currentTimeMillis() - t
==>900
gremlin> t = System.currentTimeMillis(); g.V.as('x').out().jump('x'){it.loops < 3}.iterate(); System.currentTimeMillis() - t
==>5513
gremlin> g.V().out().out().out().count()
==>14465066
gremlin> g.V.as('x').out().jump('x'){it.loops < 3}.count()
==>14465066
public class IfThenElseStep<S, E> extends FlatMapStep<S, E> {
public final SPredicate<S> ifPredicate;
public final Traversal<S, E> thenTraversal;
public final Traversal<S, E> elseTraversal;
public IfThenElseStep(final Traversal traversal, final SPredicate<S> ifPredicate, final Traversal<S, E> thenTraversal, final Traversal<S, E> elseTraversal) {
super(traversal);
this.ifPredicate = ifPredicate;
this.thenTraversal = thenTraversal;
public class IfThenElseStep<S, E> extends FlatMapStep<S, E> {
public final SPredicate<Traverser<S>> ifPredicate;
public final Traversal<S, E> thenTraversal;
public final Traversal<S, E> elseTraversal;
public IfThenElseStep(final Traversal traversal, final SPredicate<Traverser<S>> ifPredicate, final Traversal<S, E> thenTraversal, final Traversal<S, E> elseTraversal) {
super(traversal);
this.ifPredicate = ifPredicate;
this.thenTraversal = thenTraversal;
gremlin> g.V.filter{it.get().value('name').length() == 5}.out.name
==>lop
==>vadas
==>josh
==>lop
gremlin> g.V.filter{it.get().value('name').length() != 5}.in.name
==>marko
==>josh
==>peter
==>marko
gremlin> g = TinkerFactory.createClassic()
==>tinkergraph[vertices:6 edges:6]
gremlin>
gremlin> g.V.filter{it.get().value('name').length() == 5}.out.name
==>lop
==>vadas
==>josh
==>lop
gremlin> g.V.filter{it.get().value('name').length() != 5}.in.name
==>marko
gremlin> g.V.choose({it.get().value('name').length() - 3}, g.of().identity, g.of().out, g.of.in).name
==>marko
==>lop
==>ripple
==>lop
The following choice index does not reference a traversal: 3
Display stack trace? [yN]
gremlin>