Use your own Array Expander:
RelationshipType[][] orderedRelTypes = {
{ Relations.FRIENDS, Relations.ENEMIES },
{ Relations.LIKES },
{ Relations.HATES}
};
Direction[] directions = {Direction.OUTGOING, Direction.INCOMING, Direction.INCOMING} ;
Traverser traverser = Traversal.description()
.depthFirst()
.expand(new ArrayExpander(directions,orderedRelTypes))
.evaluator(Evaluators.atDepth(3))
.uniqueness(Uniqueness.NONE)
.traverse(person);
public class ArrayExpander implements PathExpander {
private Direction[] directions;
private RelationshipType[][] types;
public ArrayExpander(Direction[] directions, RelationshipType[][] types )
{
this.types = types;
this.directions = directions;
}
public Iterable<Relationship> expand(Path path, BranchState state){
return path.endNode().getRelationships(directions[path.length()],
types[path.length()]);
}
public ArrayExpander reverse()
{
return new ArrayExpander(directions, types);
}
}