private ExprList process(List<Expr> exprList) { int N = exprList.size() ; List<Expr> x = new ArrayList<Expr>(N) ; for ( int i = 0 ; i < N ; i++ ) { Expr e2 = pop(stack) ; // Add in reverse. x.add(0, e2) ; } return new ExprList(x) ; }
@Override public void visit(ExprFunctionOp funcOp) { ExprList x = null ; if ( funcOp.getArgs() != null ) x = process(funcOp.getArgs()) ; Op op = funcOp.getGraphPattern() ; // Caution: the expression can have a pattern inside it. // See also: ExprTransformApplyTransform which does much the same in a different way. if ( transform instanceof ExprTransformOp ) { ExprTransformOp t = (ExprTransformOp)transform ; op = Transformer.transform(t.getTransform(), op) ; } Expr e = funcOp.apply(transform, x, op) ; push(stack, e) ; }
public void visit(ExprFunctionOp funcOp) { ExprList x = null ; if ( funcOp.getArgs() != null ) x = process(funcOp.getArgs()) ; Op op = funcOp.getGraphPattern() ; if ( transform instanceof ExprTransformOp ) { ExprTransformOp t = (ExprTransformOp)transform ; op = Transformer.transform(t.getTransform(), op) ; } Expr e = funcOp.apply(transform, x, op) ; push(stack, e) ; }
@Override public void visit(ExprAggregator eAgg) { Expr e = eAgg.apply(transform) ; push(stack, e) ; }
@Override public void visit(NodeValue nv) { Expr e = nv.apply(transform) ; push(stack, e) ; }
private ExprList transformation(ExprTransform transform, ExprList exprList) { ApplyExprTransformVisitor v = new ApplyExprTransformVisitor(transform) ; ExprList exprList2 = new ExprList() ; for ( Expr expr : exprList ) { Expr expr2 = transformation(v, expr) ; exprList2.add(expr2) ; } return exprList2 ; }
private ExprList transformation(ExprTransform transform, ExprList exprList) { ApplyExprTransformVisitor v = new ApplyExprTransformVisitor(transform) ; ExprList exprList2 = new ExprList() ; for ( Expr expr : exprList ) { Expr expr2 = transformation(v, expr) ; exprList2.add(expr2) ; } return exprList2 ; }
public void visit(NodeValue nv) { Expr e = nv.apply(transform) ; push(stack, e) ; }
private Expr transformation(ApplyExprTransformVisitor applyVisitor, Expr expr) { if ( expr instanceof ExprRDQL ) // Can't transform RDQL expressions. return expr ; ExprWalker.walk(applyVisitor, expr) ; return applyVisitor.result() ; }
@Override public void visit(ExprVar var) { Expr e = var.apply(transform) ; push(stack, e) ; }
@Override public void visit(ExprFunction0 func) { Expr e = func.apply(transform) ; push(stack, e) ; }
private Expr transformation(ApplyExprTransformVisitor applyVisitor, Expr expr) { ExprWalker.walk(applyVisitor, expr) ; return applyVisitor.result() ; }
private Expr transformation(ExprTransform transform, Expr expr) { ApplyExprTransformVisitor v = new ApplyExprTransformVisitor(transform) ; return transformation(v, expr) ; }
public void visit(ExprVar var) { Expr e = var.apply(transform) ; push(stack, e) ; }
public void visit(ExprAggregator eAgg) { Expr e = eAgg.apply(transform) ; push(stack, e) ; }