public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(ArbitraryLengthPath alp, final BindingSet bindings) throws QueryEvaluationException { final Scope scope = alp.getScope(); final Var subjectVar = alp.getSubjectVar(); final TupleExpr pathExpression = alp.getPathExpression(); final Var objVar = alp.getObjectVar(); final Var contextVar = alp.getContextVar(); final long minLength = alp.getMinLength(); return new PathIteration(this, scope, subjectVar, pathExpression, objVar, contextVar, minLength, bindings); }
@Override public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(ArbitraryLengthPath alp, final BindingSet bindings) throws QueryEvaluationException { final Scope scope = alp.getScope(); final Var subjectVar = alp.getSubjectVar(); final TupleExpr pathExpression = alp.getPathExpression(); final Var objVar = alp.getObjectVar(); final Var contextVar = alp.getContextVar(); final long minLength = alp.getMinLength(); return new LimitedSizePathIterator(this, scope, subjectVar, pathExpression, objVar, contextVar, minLength, bindings, used, maxSize); }
public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(ArbitraryLengthPath alp, final BindingSet bindings) throws QueryEvaluationException { final Scope scope = alp.getScope(); final Var subjectVar = alp.getSubjectVar(); final TupleExpr pathExpression = alp.getPathExpression(); final Var objVar = alp.getObjectVar(); final Var contextVar = alp.getContextVar(); final long minLength = alp.getMinLength(); return new PathIteration(this, scope, subjectVar, pathExpression, objVar, contextVar, minLength, bindings); }
@Override public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(ArbitraryLengthPath alp, final BindingSet bindings) throws QueryEvaluationException { final Scope scope = alp.getScope(); final Var subjectVar = alp.getSubjectVar(); final TupleExpr pathExpression = alp.getPathExpression(); final Var objVar = alp.getObjectVar(); final Var contextVar = alp.getContextVar(); final long minLength = alp.getMinLength(); return new LimitedSizePathIterator(this, scope, subjectVar, pathExpression, objVar, contextVar, minLength, bindings, used, maxSize); }
/** * Evaluate {@link ArbitraryLengthPath} query model nodes * @param parent * @param alp * @param bindings */ private void evaluateArbitraryLengthPath(BindingSetPipe parent, ArbitraryLengthPath alp, BindingSet bindings) { final StatementPattern.Scope scope = alp.getScope(); final Var subjectVar = alp.getSubjectVar(); final TupleExpr pathExpression = alp.getPathExpression(); final Var objVar = alp.getObjectVar(); final Var contextVar = alp.getContextVar(); final long minLength = alp.getMinLength(); //temporary solution using copy of the original iterator //re-writing this to push model is a bit more complex task try { HalyardStatementPatternEvaluation.enqueue(parent, new PathIteration(new StrictEvaluationStrategy(null, null) { @Override public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(ZeroLengthPath zlp, BindingSet bindings) throws QueryEvaluationException { return parentStrategy.evaluate(zlp, bindings); } @Override public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(TupleExpr expr, BindingSet bindings) throws QueryEvaluationException { return parentStrategy.evaluate(expr, bindings); } }, scope, subjectVar, pathExpression, objVar, contextVar, minLength, bindings), alp); } catch (QueryEvaluationException e) { parent.handleException(e); } }