private static void check(Collection<Var> scope, ElementBind el) { Var var = el.getVar() ; if ( scope.contains(var) ) throw new QueryParseException("BIND: Variable used when already in-scope: "+var+" in "+el, -1 , -1) ; checkAssignment(scope, el.getExpr(), var) ; }
@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 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"); } } }
@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"); } } }
@Override public void visit(ElementBind el) { Var v = el.getVar() ; Var v1 = TransformElementLib.applyVar(v, exprTransform) ; Expr expr = el.getExpr() ; Expr expr1 = ExprTransformer.transform(exprTransform, expr) ; Element el2 = transform.transform(el, v1, expr1 ) ; push(el2) ; }
@Override public void visit(ElementBind el) { Var v = el.getVar() ; Var v1 = TransformElementLib.applyVar(v, exprTransform) ; Expr expr = el.getExpr() ; Expr expr1 = ExprTransformer.transform(exprTransform, expr) ; Element el2 = transform.transform(el, v1, expr1 ) ; push(el2) ; }
@Override public void visit(ElementBind el) { out.print("BIND("); FmtExprSPARQL v = new FmtExprSPARQL(out, context); v.format(el.getExpr()); out.print(" AS "); out.print("?" + el.getVar().getVarName()); out.print(")"); }
@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(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()); } }
return OpExtend.create(current, bind.getVar(), bind.getExpr()) ;