org.openrdf.query.algebra.evaluation.impl
Class EvaluationStrategyImpl

java.lang.Object
  extended by org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl
All Implemented Interfaces:
EvaluationStrategy
Direct Known Subclasses:
RdbmsEvaluation

public class EvaluationStrategyImpl
extends Object
implements EvaluationStrategy

Evaluates the TupleExpr and ValueExpr using Iterators and common tripleSource API.

Author:
James Leigh, Arjohn Kampman, David Huynh

Field Summary
protected  Dataset dataset
           
protected  TripleSource tripleSource
           
 
Constructor Summary
EvaluationStrategyImpl(TripleSource tripleSource)
           
EvaluationStrategyImpl(TripleSource tripleSource, Dataset dataset)
           
 
Method Summary
 Value evaluate(And node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(BinaryTupleOperator expr, BindingSet bindings)
           
 Value evaluate(BNodeGenerator node, BindingSet bindings)
           
 Value evaluate(Bound node, BindingSet bindings)
           
 Value evaluate(CompareAll node, BindingSet bindings)
           
 Value evaluate(CompareAny node, BindingSet bindings)
           
 Value evaluate(Compare node, BindingSet bindings)
           
 Value evaluate(Datatype node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Difference difference, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Distinct distinct, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(EmptySet emptySet, BindingSet bindings)
           
 Value evaluate(Exists node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Extension extension, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Filter filter, BindingSet bindings)
           
 Value evaluate(FunctionCall node, BindingSet bindings)
          Evaluates a function.
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Group node, BindingSet bindings)
           
 Value evaluate(In node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Intersection intersection, BindingSet bindings)
           
 Value evaluate(IsBNode node, BindingSet bindings)
          Determines whether the operand (a variable) contains a BNode.
 Value evaluate(IsLiteral node, BindingSet bindings)
          Determines whether the operand (a variable) contains a Literal.
 Value evaluate(IsResource node, BindingSet bindings)
          Determines whether the operand (a variable) contains a Resource.
 Value evaluate(IsURI node, BindingSet bindings)
          Determines whether the operand (a variable) contains a URI.
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Join join, BindingSet bindings)
           
 Value evaluate(Label node, BindingSet bindings)
           
 Value evaluate(Lang node, BindingSet bindings)
           
 Value evaluate(LangMatches node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(LeftJoin leftJoin, BindingSet bindings)
           
 Value evaluate(Like node, BindingSet bindings)
          Determines whether the two operands match according to the like operator.
 Value evaluate(LocalName node, BindingSet bindings)
           
 Value evaluate(MathExpr node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(MultiProjection multiProjection, BindingSet bindings)
           
 Value evaluate(Namespace node, BindingSet bindings)
           
 Value evaluate(Not node, BindingSet bindings)
           
 Value evaluate(Or node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Order node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Projection projection, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Reduced reduced, BindingSet bindings)
           
 Value evaluate(Regex node, BindingSet bindings)
          Determines whether the two operands match according to the regex operator.
 Value evaluate(SameTerm node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(SingletonSet singletonSet, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Slice slice, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(StatementPattern sp, BindingSet bindings)
           
 Value evaluate(Str node, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(TupleExpr expr, BindingSet bindings)
          Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(UnaryTupleOperator expr, BindingSet bindings)
           
 CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Union union, BindingSet bindings)
           
 Value evaluate(ValueConstant valueConstant, BindingSet bindings)
           
 Value evaluate(ValueExpr expr, BindingSet bindings)
          Gets the value of this expression.
 Value evaluate(Var var, BindingSet bindings)
           
protected  Value getVarValue(Var var, BindingSet bindings)
           
 boolean isTrue(ValueExpr expr, BindingSet bindings)
          Evaluates the boolean expression on the supplied TripleSource object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tripleSource

protected final TripleSource tripleSource

dataset

protected final Dataset dataset
Constructor Detail

EvaluationStrategyImpl

public EvaluationStrategyImpl(TripleSource tripleSource)

EvaluationStrategyImpl

public EvaluationStrategyImpl(TripleSource tripleSource,
                              Dataset dataset)
Method Detail

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(TupleExpr expr,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Description copied from interface: EvaluationStrategy
Evaluates the tuple expression against the supplied triple source with the specified set of variable bindings as input.

Specified by:
evaluate in interface EvaluationStrategy
Parameters:
expr - The Tuple Expression to evaluate
bindings - The variables bindings to use for evaluating the expression, if applicable.
Returns:
A closeable iterator over the variable binding sets that match the tuple expression.
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(StatementPattern sp,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

getVarValue

protected Value getVarValue(Var var,
                            BindingSet bindings)

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(UnaryTupleOperator expr,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Projection projection,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(MultiProjection multiProjection,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Filter filter,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Slice slice,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Extension extension,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Distinct distinct,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Reduced reduced,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Group node,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Order node,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(BinaryTupleOperator expr,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Join join,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(LeftJoin leftJoin,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Union union,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Intersection intersection,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(Difference difference,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(SingletonSet singletonSet,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public CloseableIteration<BindingSet,QueryEvaluationException> evaluate(EmptySet emptySet,
                                                                        BindingSet bindings)
                                                                 throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public Value evaluate(ValueExpr expr,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Description copied from interface: EvaluationStrategy
Gets the value of this expression.

Specified by:
evaluate in interface EvaluationStrategy
bindings - The variables bindings to use for evaluating the expression, if applicable.
Returns:
The Value that this expression evaluates to, or null if the expression could not be evaluated.
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Var var,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(ValueConstant valueConstant,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(BNodeGenerator node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Bound node,
                      BindingSet bindings)
               throws QueryEvaluationException
Throws:
QueryEvaluationException

evaluate

public Value evaluate(Str node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Label node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Lang node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Datatype node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Namespace node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(LocalName node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(IsResource node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Determines whether the operand (a variable) contains a Resource.

Returns:
true if the operand contains a Resource, false otherwise.
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(IsURI node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Determines whether the operand (a variable) contains a URI.

Returns:
true if the operand contains a URI, false otherwise.
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(IsBNode node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Determines whether the operand (a variable) contains a BNode.

Returns:
true if the operand contains a BNode, false otherwise.
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(IsLiteral node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Determines whether the operand (a variable) contains a Literal.

Returns:
true if the operand contains a Literal, false otherwise.
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Regex node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Determines whether the two operands match according to the regex operator.

Returns:
true if the operands match according to the regex operator, false otherwise.
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(LangMatches node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Like node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Determines whether the two operands match according to the like operator. The operator is defined as a string comparison with the possible use of an asterisk (*) at the end and/or the start of the second operand to indicate substring matching.

Returns:
true if the operands match according to the like operator, false otherwise.
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(FunctionCall node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Evaluates a function.

Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(And node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Or node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Not node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(SameTerm node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(Compare node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(MathExpr node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException
QueryEvaluationException

evaluate

public Value evaluate(In node,
                      BindingSet bindings)
               throws ValueExprEvaluationException,
                      QueryEvaluationException
Throws:
ValueExprEvaluationException