@Override public int hashCode() { return hashFixedLength ^ (int)count ^ getSubPath().hashCode(); }
@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); }
@Override public void visit(P_FixedLength path) { Path newSubPath = apply(path.getSubPath()); result = path.getSubPath() == newSubPath ? path : new P_FixedLength(newSubPath, path.getCount()) ; }
@Override public void visit(P_FixedLength pFixedLength) { engine.doFixedLengthPath(pFixedLength.getSubPath(), node, pFixedLength.getCount(), output) ; }
@Override public Path transform(P_FixedLength path, Path subPath, long count) { Path result = path.getSubPath() == subPath && path.getCount() == count ? path : new P_FixedLength(subPath, count) ; return result; }
@Override public void visit(P_FixedLength path) { before(path); if (path.getSubPath() != null) { path.getSubPath().visit(this); } proc.visit(path); after(path); }
@Override public void visit(P_FixedLength path) { result = new P_FixedLength(new P_Inverse(path.getSubPath()), path.getCount()); }
@Override public void visit(P_FixedLength pFixedLength) { Op op = null ; Var v1 = null ; for ( int i = 0 ; i < pFixedLength.getCount() ; i++ ) { Var v2 = varAlloc.allocVar() ; Node s = (v1 == null) ? subject : v1 ; Node o = (i == pFixedLength.getCount()-1) ? object : v2 ; Op op1 = transformPath(null, s, pFixedLength.getSubPath() , o) ; op = join(op, op1) ; v1 = v2 ; } result = op ; }
@Override public void visit(P_FixedLength pFixedLength) { pFixedLength.getSubPath().visit(this); push(new P_FixedLength(pop(), pFixedLength.getCount())); }
@Override public void visit(P_FixedLength pFixedLength) { pFixedLength.getSubPath().visit(this); push(new P_FixedLength(pop(), pFixedLength.getCount())); }
@Override public void visit(P_FixedLength pFixedLength) { if ( needParens ) out.print("(") ; if ( alwaysInnerParens ) out.print("(") ; pFixedLength.getSubPath().visit(this) ; if ( alwaysInnerParens ) out.print(")") ; out.print("{") ; out.print(Long.toString(pFixedLength.getCount())) ; out.print("}") ; if ( needParens ) out.print(")") ; }
@Override public void visit(P_FixedLength path) { out.print("(") ; out.print(Tags.tagPathFixedLength) ; out.print(" ") ; out.print(modInt(path.getCount())) ; writeOneLiner(path.getSubPath()) ; out.print(")") ; }
reduce(x, varAlloc, stepStart, pFixed.getSubPath(), v) ; stepStart = v ; reduce(x, varAlloc, stepStart, pFixed.getSubPath(), endNode) ; return ;