@Override public final QueryIterator exec(Binding binding, PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { argSubject = Substitute.substitute(argSubject, binding) ; argObject = Substitute.substitute(argObject, binding) ; return execEvaluated(binding, argSubject, predicate, argObject, execCxt) ; }
@Override public final QueryIterator exec(Binding binding, PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { argSubject = Substitute.substitute(argSubject, binding) ; argObject = Substitute.substitute(argObject, binding) ; return execEvaluated(binding, argSubject, predicate, argObject, execCxt) ; }
private static Op subst(Op subOp , Var var, NodeValue nv) { Op op = Substitute.substitute(subOp, var, nv.asNode()) ; return OpExtend.extend(op, var, nv) ; }
@Override public Op transform(OpBGP opBGP) { BasicPattern bgp = opBGP.getPattern() ; bgp = substitute(bgp, binding) ; return new OpBGP(bgp) ; }
@Override public Op transform(OpBGP opBGP) { BasicPattern bgp = opBGP.getPattern() ; bgp = substitute(bgp, binding) ; return new OpBGP(bgp) ; }
private static Op subst(Op subOp, Var find, Var replace) { Op op = Substitute.substitute(subOp, find, replace); return OpAssign.assign(op, find, new ExprVar(replace)); } }
@Override public Op transform(OpGraph op, Op sub) { Node n = substitute(op.getNode(), binding) ; return new OpGraph(n, sub) ; }
@Override public Op transform(OpPath opPath) { return new OpPath(substitute(opPath.getTriplePath(), binding)) ; }
@Override public Op transform(OpGraph op, Op sub) { Node n = substitute(op.getNode(), binding) ; return new OpGraph(n, sub) ; }
public static PropFuncArg substitute(PropFuncArg propFuncArg, Binding binding) { if ( isNotNeeded(binding) ) return propFuncArg ; if ( propFuncArg.isNode() ) return new PropFuncArg(substitute(propFuncArg.getArg(), binding)) ; List<Node> newArgList = new ArrayList<Node>() ; for ( Node n : propFuncArg.getArgList() ) newArgList.add(substitute(n, binding)) ; return new PropFuncArg(newArgList) ; }
@Override public Op transform(OpPropFunc opPropFunc, Op subOp) { PropFuncArg sArgs = opPropFunc.getSubjectArgs() ; PropFuncArg oArgs = opPropFunc.getObjectArgs() ; PropFuncArg sArgs2 = substitute(sArgs, binding) ; PropFuncArg oArgs2 = substitute(oArgs, binding) ; if ( sArgs2 == sArgs && oArgs2 == oArgs && opPropFunc.getSubOp() == subOp) return super.transform(opPropFunc, subOp) ; return new OpPropFunc(opPropFunc.getProperty(), sArgs2, oArgs2, subOp) ; }
@Override public Expr copySubstitute(Binding binding, boolean foldConstants) { // Does not pass down fold constants. Oh well. Op op2 = Substitute.substitute(getGraphPattern(), binding) ; return new E_NotExists(getElement(), op2) ; }
@Override public Expr copySubstitute(Binding binding, boolean foldConstants) { // Does not pass down fold constants. Oh well. Op op2 = Substitute.substitute(getGraphPattern(), binding) ; return new E_NotExists(getElement(), op2) ; }
public static BasicPattern substitute(BasicPattern bgp, Binding binding) { if ( isNotNeeded(binding) ) return bgp ; BasicPattern bgp2 = new BasicPattern() ; for ( Triple triple : bgp ) { Triple t = substitute(triple, binding) ; bgp2.add(t) ; } return bgp2 ; }
@Override public Op transform(OpPropFunc opPropFunc, Op subOp) { PropFuncArg sArgs = opPropFunc.getSubjectArgs() ; PropFuncArg oArgs = opPropFunc.getObjectArgs() ; PropFuncArg sArgs2 = substitute(sArgs, binding) ; PropFuncArg oArgs2 = substitute(oArgs, binding) ; if ( sArgs2 == sArgs && oArgs2 == oArgs && opPropFunc.getSubOp() == subOp) return super.transform(opPropFunc, subOp) ; return new OpPropFunc(opPropFunc.getProperty(), sArgs2, oArgs2, subOp) ; }
@Override public Expr copySubstitute(Binding binding, boolean foldConstants) { // Does not pass down fold constants. Oh well. Op op2 = Substitute.substitute(getGraphPattern(), binding) ; return new E_Exists(getElement(), op2) ; }
public static BasicPattern substitute(BasicPattern bgp, Binding binding) { if ( isNotNeeded(binding) ) return bgp ; BasicPattern bgp2 = new BasicPattern() ; for ( Triple triple : bgp ) { Triple t = substitute(triple, binding) ; bgp2.add(t) ; } return bgp2 ; }
private static Op subst(Op subOp , ExprVar var1, ExprVar var2) { // Replace var2 with var1 Op op = Substitute.substitute(subOp, var2.asVar(), var1.asVar()) ; // Insert BIND(var1 AS var2) return OpExtend.extend(op, var2.asVar(), var1) ; }
@Override public QueryIterator eval(Op op, DatasetGraph dsg, Binding binding, Context context) { if ( binding.vars().hasNext() ) op = Substitute.substitute(op, binding) ; ExecutionContext execCxt = new ExecutionContext(context, dsg.getDefaultGraph(), dsg, QC.getFactory(context)) ; Evaluator eval = EvaluatorFactory.create(execCxt) ; Table table = Eval.eval(eval, op) ; QueryIterator qIter = table.iterator(execCxt) ; return QueryIteratorCheck.check(qIter, execCxt) ; }
@Override public QueryIterator eval(Op op, DatasetGraph dsg, Binding binding, Context context) { if ( binding.vars().hasNext() ) op = Substitute.substitute(op, binding) ; ExecutionContext execCxt = new ExecutionContext(context, dsg.getDefaultGraph(), dsg, QC.getFactory(context)) ; Evaluator eval = EvaluatorFactory.create(execCxt) ; Table table = Eval.eval(eval, op) ; QueryIterator qIter = table.iterator(execCxt) ; return QueryIteratorCheck.check(qIter, execCxt) ; }