Class InMemoryExpressionEvaluator
java.lang.Object
org.datanucleus.store.query.expression.AbstractExpressionEvaluator
org.datanucleus.store.query.inmemory.InMemoryExpressionEvaluator
- All Implemented Interfaces:
ExpressionEvaluator
Class providing evaluation of java "string-based" queries in-memory.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final String
Alias name for the candidate.(package private) ClassLoaderResolver
(package private) ExecutionContext
(package private) Imports
(package private) Map
Map of input parameter values, keyed by their name.(package private) String
(package private) QueryManager
Map of state variables for query evaluation.Map of variable values, keyed by the variable name. -
Constructor Summary
ConstructorsConstructorDescriptionInMemoryExpressionEvaluator
(ExecutionContext ec, Map params, Map<String, Object> state, Imports imports, ClassLoaderResolver clr, String candidateAlias, String queryLang) Constructor for an in-memory evaluator. -
Method Summary
Modifier and TypeMethodDescriptionint
Convenience method to get an int value from the supplied literal.private Object
getValueForArrayExpression
(ArrayExpression arrayExpr) getValueForInvokeExpression
(InvokeExpression invokeExpr) Method to evaluate an InvokeExpression.Convenience method to get the value for a PrimaryExpression.Convenience method to get the (current) value for a VariableExpression.protected Object
Method to process the supplied ADD expression.protected Object
Method to process the supplied AND expression.protected Object
Method to process the supplied BITWISE AND expression.protected Object
Method to process the supplied BITWISE OR expression.protected Object
Method to process the supplied BITWISE XOR expression.protected Object
Method to process the supplied case expression.protected Object
Method to process the supplied cast expression.protected Object
Method to process the supplied COM expression.protected Object
Method to process the supplied creator expression.protected Object
Method to process the supplied DIV expression.protected Object
Method to process the supplied EQ expression.protected Object
Method to process the supplied GTEQ expression.protected Object
Method to process the supplied GT expression.protected Object
Method to process the supplied IN expression.protected Object
Method to process the supplied invoke expression.protected Object
Method to process the supplied IS (instanceof) expression.protected Object
Method to process the supplied ISNOT (!instanceof) expression.protected Object
Method to process the supplied LIKE expression.protected Object
processLiteral
(Literal expr) Method to process the supplied invoke expression.protected Object
Method to process the supplied LTEQ expression.protected Object
Method to process the supplied LT expression.protected Object
Method to process the supplied MOD expression.protected Object
Method to process the supplied MUL expression.protected Object
Method to process the supplied NEG expression.protected Object
Method to process the supplied NOTEQ expression.protected Object
Method to process the supplied NOT expression.protected Object
Method to process the supplied NOT IN expression.protected Object
Method to process the supplied OR expression.protected Object
Method to process the supplied parameter expression.protected Object
Method to process the supplied primary expression.protected Object
Method to process the supplied SUB expression.protected Object
Method to process the supplied variable expression.void
Method to remove a variable value.void
setVariableValue
(String id, Object value) Method to set the value for a variable.Methods inherited from class org.datanucleus.store.query.expression.AbstractExpressionEvaluator
compileAdditiveMultiplicativeExpression, compileOrAndExpression, compilePrimaryExpression, compileRelationalExpression, compileUnaryExpression, evaluate, processDistinctExpression, processSubqueryExpression
-
Field Details
-
queryLanguage
String queryLanguage -
stack
-
parameterValues
Map parameterValuesMap of input parameter values, keyed by their name. -
variableValues
Map of variable values, keyed by the variable name. Set during execution. -
state
Map of state variables for query evaluation. -
imports
Imports imports -
ec
-
clr
-
queryMgr
QueryManager queryMgr -
candidateAlias
Alias name for the candidate.
-
-
Constructor Details
-
InMemoryExpressionEvaluator
public InMemoryExpressionEvaluator(ExecutionContext ec, Map params, Map<String, Object> state, Imports imports, ClassLoaderResolver clr, String candidateAlias, String queryLang) Constructor for an in-memory evaluator.- Parameters:
ec
- ExecutionContextparams
- Input parametersstate
- Map of state values keyed by their symbolic nameimports
- Any importsclr
- ClassLoader resolvercandidateAlias
- Alias for the candidate class. With JDOQL this is "this".queryLang
- Query language (JDOQL, JPQL etc)
-
-
Method Details
-
getParameterValues
-
getQueryLanguage
-
processAndExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied AND expression. To be implemented by subclasses.- Overrides:
processAndExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processOrExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied OR expression. To be implemented by subclasses.- Overrides:
processOrExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processBitOrExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied BITWISE OR expression. To be implemented by subclasses.- Overrides:
processBitOrExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processBitAndExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied BITWISE AND expression. To be implemented by subclasses.- Overrides:
processBitAndExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processBitXorExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied BITWISE XOR expression. To be implemented by subclasses.- Overrides:
processBitXorExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processEqExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied EQ expression. To be implemented by subclasses.- Overrides:
processEqExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processLikeExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied LIKE expression. To be implemented by subclasses.- Overrides:
processLikeExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processNoteqExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied NOTEQ expression. To be implemented by subclasses.- Overrides:
processNoteqExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processGteqExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied GTEQ expression. To be implemented by subclasses.- Overrides:
processGteqExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processGtExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied GT expression. To be implemented by subclasses.- Overrides:
processGtExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processIsExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied IS (instanceof) expression. To be implemented by subclasses.- Overrides:
processIsExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processIsnotExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied ISNOT (!instanceof) expression. To be implemented by subclasses.- Overrides:
processIsnotExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processCastExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied cast expression. To be implemented by subclasses.- Overrides:
processCastExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processLteqExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied LTEQ expression. To be implemented by subclasses.- Overrides:
processLteqExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processLtExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied LT expression. To be implemented by subclasses.- Overrides:
processLtExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processAddExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied ADD expression. To be implemented by subclasses.- Overrides:
processAddExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processSubExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied SUB expression. To be implemented by subclasses.- Overrides:
processSubExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processDivExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied DIV expression. To be implemented by subclasses.- Overrides:
processDivExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processModExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied MOD expression. To be implemented by subclasses.- Overrides:
processModExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processMulExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied MUL expression. To be implemented by subclasses.- Overrides:
processMulExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processNegExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied NEG expression. To be implemented by subclasses.- Overrides:
processNegExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processComExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied COM expression. To be implemented by subclasses.- Overrides:
processComExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processNotExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied NOT expression. To be implemented by subclasses.- Overrides:
processNotExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processCreatorExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied creator expression. To be implemented by subclasses.- Overrides:
processCreatorExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processInvokeExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied invoke expression. To be implemented by subclasses.- Overrides:
processInvokeExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processInExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied IN expression. To be implemented by subclasses.- Overrides:
processInExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processNotInExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied NOT IN expression. To be implemented by subclasses.- Overrides:
processNotInExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processLiteral
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied invoke expression. To be implemented by subclasses.- Overrides:
processLiteral
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processVariableExpression
Method to process the supplied variable expression. To be implemented by subclasses.- Overrides:
processVariableExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processParameterExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied parameter expression. To be implemented by subclasses.- Overrides:
processParameterExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processPrimaryExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied primary expression. To be implemented by subclasses.- Overrides:
processPrimaryExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
processCaseExpression
Description copied from class:AbstractExpressionEvaluator
Method to process the supplied case expression. To be implemented by subclasses.- Overrides:
processCaseExpression
in classAbstractExpressionEvaluator
- Parameters:
expr
- The expression- Returns:
- The result
-
getValueForInvokeExpression
Method to evaluate an InvokeExpression. Will navigate along chained invocations, evaluating the first one, then the second one etc until it gets the value for the passed in expression.- Parameters:
invokeExpr
- The InvokeExpression- Returns:
- The value
-
getValueForArrayExpression
-
getValueForExpression
-
getIntegerForLiteral
Convenience method to get an int value from the supplied literal. Returns a value if it is convertible into an int.- Parameters:
lit
- The literal- Returns:
- The int value
- Throws:
NucleusException
- if impossible to convert into an int
-
getValueForPrimaryExpression
Convenience method to get the value for a PrimaryExpression.- Parameters:
primExpr
- Expression- Returns:
- The value in the object for this expression
-
setVariableValue
Method to set the value for a variable.- Parameters:
id
- Id of the variablevalue
- The value to use
-
removeVariableValue
Method to remove a variable value.- Parameters:
id
- The id of the variable
-
getValueForVariableExpression
Convenience method to get the (current) value for a VariableExpression. If the variable has no current value, throws aVariableNotSetException
.- Parameters:
varExpr
- Variable Expression- Returns:
- The value
- Throws:
VariableNotSetException
- Thrown when the variable has no value currently set.
-
getVariableExpressionValues
-