public void walk(Expr expr) { if ( expr == null ) return ; if ( exprDepth == exprDepthLimit ) return ; exprDepth++ ; try { expr.visit(this) ; } finally { exprDepth-- ; } }
@Override public void visitExprFunction(ExprFunction func) { for ( int i = 1 ; i <= func.numArgs() ; i++ ) { Expr expr = func.getArg(i) ; if ( expr == null ) // Put a dummy in, e.g. to keep the transform stack aligned. Expr.NONE.visit(this) ; else expr.visit(this) ; } if ( exprVisitor != null ) func.visit(exprVisitor) ; }
public static void output(IndentedWriter out, Expr expr, SerializationContext sCxt) { FmtExprPrefixVisitor fmt = new FmtExprPrefixVisitor(out, sCxt) ; expr.visit(fmt) ; out.flush() ; }
@Override public void visit(ElementFilter el) { el.getExpr().visit(this); elementVisitor.visit(el) ; }
@Override public void visit(ExprFunction1 func) { func.getArg().visit(this); push(func.copy(pop())); }
@Override public void visit(ExprFunction1 func) { func.getArg().visit(this); push(func.copy(pop())); }
public final SortCondition rewrite(SortCondition sortCondition) { sortCondition.getExpression().visit(this); return new SortCondition(pop(), sortCondition.getDirection()); }
@Override public void visit(ElementFilter el) { ExprRewriter exprRewriter = new ExprRewriter(values); el.getExpr().visit(exprRewriter); push(new ElementFilter(exprRewriter.getResult())); }
@Override public void visit(ElementFilter el) { ExprRewriter exprRewriter = new ExprRewriter(values); el.getExpr().visit(exprRewriter); push(new ElementFilter(exprRewriter.getResult())); }
public final ExprList rewrite(ExprList lst) { if (lst == null) { return null; } ExprList exprList = new ExprList(); int limit = lst.size(); for (int i = 0; i < limit; i++) { lst.get(i).visit(this); exprList.add(pop()); } return exprList; } }
public final ExprList rewrite(ExprList lst) { if (lst == null) { return null; } ExprList exprList = new ExprList(); int limit = lst.size(); for (int i = 0; i < limit; i++) { lst.get(i).visit(this); exprList.add(pop()); } return exprList; } }
@Override public void visit(ExprFunction1 expr) { if ( expr.getOpName() == null ) { printInFunctionForm(expr) ; return ; } out.print("( ") ; out.print( expr.getOpName() ) ; out.print(" ") ; expr.getArg().visit(this) ; out.print(" )"); }
@Override public void visit(ElementAssign el) { Node n = changeNode(el.getVar()); if (n.equals(el.getVar())) { ExprRewriter exprRewriter = new ExprRewriter(values); el.getExpr().visit(exprRewriter); push(new ElementAssign(el.getVar(), exprRewriter.getResult())); } else { // push( new ElementAssign( el.getVar(), NodeValue.makeNode( n )) ); // no op push(new ElementTriplesBlock()); } }
@Override public void visit(ElementBind el) { Node n = changeNode(el.getVar()); if (n.equals(el.getVar())) { ExprRewriter exprRewriter = new ExprRewriter(values); el.getExpr().visit(exprRewriter); push(new ElementBind(el.getVar(), exprRewriter.getResult())); } else { // push( new ElementBind( el.getVar(), NodeValue.makeNode( n )) ); // no op push(new ElementTriplesBlock()); } }
@Override public void visit(ElementAssign el) { Node n = changeNode(el.getVar()); if (n.equals(el.getVar())) { ExprRewriter exprRewriter = new ExprRewriter(values); el.getExpr().visit(exprRewriter); push(new ElementAssign(el.getVar(), exprRewriter.getResult())); } else { // push( new ElementAssign( el.getVar(), NodeValue.makeNode( n )) ); // no op push(new ElementTriplesBlock()); } }