/** * Add a binding to the where clause. * * @param expr * The expression to bind. * @param var * The variable to bind it to. */ public void addBind(Expr expr, Var var) { getClause().addElement(new ElementBind(var, expr)); }
@Override public Element transform(ElementBind el, Var v, Expr expr2) { if ( el.getVar() == v && el.getExpr() == expr2 ) return el ; return new ElementBind(v, expr2) ; }
@Override public void visit(ElementBind el) { acc.add(el.getVar()) ; }
/** * Add a binding to the where clause. * * @param expr * The expression to bind. * @param var * The variable to bind it to. */ public void addBind(Expr expr, Var var) { getClause().addElement(new ElementBind(var, expr)); }
@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 startElement(ElementBind el) { if(preBoundVars.contains(el.getVar().getVarName())) { if(SH.valueVar.getVarName().equals(el.getVar().getVarName()) && el.getExpr().isVariable() && el.getExpr().asVar().equals(SH.thisVar)) { // Ignore clauses injected by engine } else { results.add("Query must not reassign the pre-bound variable " + el.getVar() + " in a BIND clause"); } } }
/** * Add a binding to the where clause. * * @param expr * The expression to bind. * @param var * The variable to bind it to. */ public void addBind(Expr expr, Var var) { getClause().addElement(new ElementBind(var, expr)); }
@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 startElement(ElementBind el) { if(preBoundVars.contains(el.getVar().getVarName())) { if(SH.valueVar.getVarName().equals(el.getVar().getVarName()) && el.getExpr().isVariable() && el.getExpr().asVar().equals(SH.thisVar)) { // Ignore clauses injected by engine } else { results.add("Query must not reassign the pre-bound variable " + el.getVar() + " in a BIND clause"); } } }
/** * Add a binding to the where clause. * * @param expr * The expression to bind. * @param var * The variable to bind it to. */ public void addBind(Expr expr, Var var) { getClause().addElement(new ElementBind(var, expr)); }
/** * Add a binding to the where clause. * * @param expression * The expression to bind. * @param var * The variable to bind it to. * @throws ParseException */ public void addBind(String expression, Var var) throws ParseException { getClause().addElement(new ElementBind(var, parseExpr(expression))); }
/** * Add a binding to the where clause. * * @param expression * The expression to bind. * @param var * The variable to bind it to. * @throws ParseException */ public void addBind(String expression, Var var) throws ParseException { getClause().addElement(new ElementBind(var, ExprUtils.parse(query, expression, true))); }
/** * Add a binding to the where clause. * * @param expression * The expression to bind. * @param var * The variable to bind it to. * @throws ParseException */ public void addBind(String expression, Var var) throws ParseException { getClause().addElement(new ElementBind(var, ExprUtils.parse(query, expression, true))); }
/** * Add a binding to the where clause. * * @param expression * The expression to bind. * @param var * The variable to bind it to. * @throws ParseException */ public void addBind(String expression, Var var) throws ParseException { getClause().addElement(new ElementBind(var, parseExpr(expression))); }