@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( ! ( path2 instanceof P_FixedLength ) ) return false ; P_FixedLength other = (P_FixedLength)path2 ; return other.count == count && getSubPath().equalTo(other.getSubPath(), isoMap) ; }
public void visit(P_Inverse inversePath) { //boolean b = forwardMode ; // Flip direction and evaluate forwardMode = ! forwardMode ; inversePath.getSubPath().visit(this) ; forwardMode = ! forwardMode ; }
public void visit(P_Seq pathSeq) { Path part1 = forwardMode ? pathSeq.getLeft() : pathSeq.getRight() ; Path part2 = forwardMode ? pathSeq.getRight() : pathSeq.getLeft() ; // Feed one side into the other Iterator<Node> iter = eval(graph, node, part1, forwardMode) ; iter = eval(graph, iter, part2, forwardMode) ; fill(iter) ; }
public void visit(P_ZeroOrOne path) { doZero(path.getSubPath()) ; doOne(path.getSubPath()) ; }
static private void eval(Graph graph, Node node, Path p, boolean forward, Collection<Node> acc) { PathEvaluator evaluator = new PathEvaluator(graph, node, acc, forward) ; p.visit(evaluator) ; } // ----
public void visit(P_ZeroOrOne path) { doZero(path.getSubPath()) ; doOne(path.getSubPath()) ; }
@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( ! ( path2 instanceof P_OneOrMore1 ) ) return false ; P_OneOrMore1 other = (P_OneOrMore1)path2 ; return getSubPath().equalTo(other.getSubPath(), isoMap) ; }
@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( ! ( path2 instanceof P_ZeroOrMore1 ) ) return false ; P_ZeroOrMore1 other = (P_ZeroOrMore1)path2 ; return getSubPath().equalTo(other.getSubPath(), isoMap) ; }
@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( ! ( path2 instanceof P_ZeroOrMoreN ) ) return false ; P_ZeroOrMoreN other = (P_ZeroOrMoreN)path2 ; return getSubPath().equalTo(other.getSubPath(), isoMap) ; }
@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( ! ( path2 instanceof P_Mod ) ) return false ; P_Mod other = (P_Mod)path2 ; return other.min == min && other.max == max && getSubPath().equalTo(other.getSubPath(), isoMap) ; }
@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( ! ( path2 instanceof P_Shortest ) ) return false ; P_Shortest other = (P_Shortest)path2 ; return getSubPath().equalTo(other.getSubPath(), isoMap) ; }
@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( ! ( path2 instanceof P_ZeroOrMore ) ) return false ; P_ZeroOrMore other = (P_ZeroOrMore)path2 ; return getSubPath().equalTo(other.getSubPath(), isoMap) ; }
@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( ! ( path2 instanceof P_Multi ) ) return false ; P_Multi other = (P_Multi)path2 ; return getSubPath().equalTo(other.getSubPath(), isoMap) ; }
public void visit(P_OneOrMore path) { doOneOrMore(path.getSubPath()) ; }