public static Path pathMulti(Path path) { return new P_Multi(path) ; } public static Path pathShortest(Path path) { return new P_Shortest(path) ; }
@Override public int hashCode() { return getSubPath().hashCode() ^ hashMulti ; }
@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) ; }
@Override public Path make(ItemList list) { BuilderLib.checkLength(2, 2, list, "path multi : wanted 1 argument") ; Path path = build(list, 1) ; return new P_Multi(path) ; } } ;
@Override public void visit(P_Multi pathMulti) { writePath(Tags.tagPathMulti, pathMulti.getSubPath()) ; }
@Override public void visit(P_Multi pathMulti) { out.print("MULTI(") ; pathMulti.getSubPath().visit(this) ; out.print(")") ; }
@Override public void visit(P_Multi pathMulti) { PathEngine engine2 = engine ; engine = new PathEngineN(graph, engine.direction()) ; engine.eval(graph, pathMulti.getSubPath(), node, output) ; engine = engine2 ; }