package neo4j.tests;
import java.util.List;
import java.util.Random;
import org.neo4j.graphdb.Direction;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Path;
import org.neo4j.graphdb.traversal.Traverser;
public class TraversalClient implements Runnable {
private int counter;
private int hops;
private List<NodePair> nodePairs;
private boolean running;
private GraphDatabaseService graph;
private Direction direction;
//7private EdgeTraversalConf edgeTraversalConf;
public TraversalClient(int hops, Direction direction,
List<NodePair> nodePairs,
GraphDatabaseService graph) {
this.nodePairs = nodePairs;
this.graph = graph;
this.hops = hops;
this.running =false;
this.direction = direction;
}
public void stop() {
this.running = false;
}
public int getCounter() {
return counter;
}
@Override
public void run() {
running =true;
counter = 0;
Random random = new Random();
try {
while (running) {
NodePair nodePair = nodePairs.get(random.nextInt(nodePairs.size()));
Traverser traverser = TestTools.traverse(graph, String.valueOf(nodePair.getNodeAId()),
String.valueOf(nodePair.getNodeBId()), hops, direction);
for (Path path : traverser) {
path.nodes();
break;
}
counter++;
}
} catch (Exception x) {
x.printStackTrace();
}
}
}