@Override public Path transform(P_ZeroOrOne path, Path subPath) { Path result = path.getSubPath() == subPath ? path : new P_ZeroOrOne(subPath) ; return result; }
@Override public int hashCode() { return hashZeroOrOne ^ getSubPath().hashCode() ; }
public static Path pathZeroOrOne(Path path) { return new P_ZeroOrOne(path) ; }
@Override public boolean equalTo(Path path2, NodeIsomorphismMap isoMap) { if ( !(path2 instanceof P_ZeroOrOne) ) return false ; P_ZeroOrOne other = (P_ZeroOrOne)path2 ; return getSubPath().equalTo(other.getSubPath(), isoMap) ; }
@Override public Path make(ItemList list) { BuilderLib.checkLength(2, 2, list, "path ZeroOrOne: wanted 1 argument") ; Path path = build(list, 1) ; return new P_ZeroOrOne(path) ; } } ;
@Override public void visit(P_ZeroOrOne path) { Path newSubPath = apply(path.getSubPath()); result = path.getSubPath() == newSubPath ? path : new P_ZeroOrOne(newSubPath) ; }
@Override public void visit(P_ZeroOrOne path) { writePath(Tags.tagPathZeroOrOne, path.getSubPath()) ; }
@Override public Path transform(P_ZeroOrOne path, Path subPath) { Path result = new P_ZeroOrOne(new P_Inverse(subPath)); return result; }
@Override public void visit(P_ZeroOrOne path) { result = new P_ZeroOrOne(new P_Inverse(path.getSubPath())); }
@Override public void visit(P_ZeroOrOne path) { engine.doZeroOrOne(path.getSubPath(), node, output) ; }
@Override public void visit(P_ZeroOrOne path) { path.getSubPath().visit(this); push(new P_ZeroOrOne(pop())); }
@Override public void visit(P_ZeroOrOne path) { printPathMod("?", path.getSubPath()) ; }
@Override public void visit(P_ZeroOrOne path) { path.getSubPath().visit(this); push(new P_ZeroOrOne(pop())); }
@Override public void visit(P_ZeroOrOne path) { before(path); if (path.getSubPath() != null) { path.getSubPath().visit(this); } proc.visit(path); after(path); }