Class InMemoryExpressionEvaluator
- java.lang.Object
-
- org.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
- org.datanucleus.store.query.inmemory.InMemoryExpressionEvaluator
-
- All Implemented Interfaces:
ExpressionEvaluator
public class InMemoryExpressionEvaluator extends AbstractExpressionEvaluator
Class providing evaluation of java "string-based" queries in-memory.
-
-
Constructor Summary
Constructors Constructor Description InMemoryExpressionEvaluator(ExecutionContext ec, Map params, Map<String,Object> state, Imports imports, ClassLoaderResolver clr, String candidateAlias, String queryLang)Constructor for an in-memory evaluator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetIntegerForLiteral(Literal lit)Convenience method to get an int value from the supplied literal.MapgetParameterValues()StringgetQueryLanguage()ObjectgetValueForExpression(Expression expr)ObjectgetValueForInvokeExpression(InvokeExpression invokeExpr)Method to evaluate an InvokeExpression.ObjectgetValueForPrimaryExpression(PrimaryExpression primExpr)Convenience method to get the value for a PrimaryExpression.ObjectgetValueForVariableExpression(VariableExpression varExpr)Convenience method to get the (current) value for a VariableExpression.Map<String,Object>getVariableExpressionValues()protected ObjectprocessAddExpression(Expression expr)Method to process the supplied ADD expression.protected ObjectprocessAndExpression(Expression expr)Method to process the supplied AND expression.protected ObjectprocessBitAndExpression(Expression expr)Method to process the supplied BITWISE AND expression.protected ObjectprocessBitOrExpression(Expression expr)Method to process the supplied BITWISE OR expression.protected ObjectprocessBitXorExpression(Expression expr)Method to process the supplied BITWISE XOR expression.protected ObjectprocessCaseExpression(CaseExpression expr)Method to process the supplied case expression.protected ObjectprocessCastExpression(Expression expr)Method to process the supplied cast expression.protected ObjectprocessComExpression(Expression expr)Method to process the supplied COM expression.protected ObjectprocessCreatorExpression(CreatorExpression expr)Method to process the supplied creator expression.protected ObjectprocessDivExpression(Expression expr)Method to process the supplied DIV expression.protected ObjectprocessEqExpression(Expression expr)Method to process the supplied EQ expression.protected ObjectprocessGteqExpression(Expression expr)Method to process the supplied GTEQ expression.protected ObjectprocessGtExpression(Expression expr)Method to process the supplied GT expression.protected ObjectprocessInExpression(Expression expr)Method to process the supplied IN expression.protected ObjectprocessInvokeExpression(InvokeExpression expr)Method to process the supplied invoke expression.protected ObjectprocessIsExpression(Expression expr)Method to process the supplied IS (instanceof) expression.protected ObjectprocessIsnotExpression(Expression expr)Method to process the supplied ISNOT (!instanceof) expression.protected ObjectprocessLikeExpression(Expression expr)Method to process the supplied LIKE expression.protected ObjectprocessLiteral(Literal expr)Method to process the supplied invoke expression.protected ObjectprocessLteqExpression(Expression expr)Method to process the supplied LTEQ expression.protected ObjectprocessLtExpression(Expression expr)Method to process the supplied LT expression.protected ObjectprocessModExpression(Expression expr)Method to process the supplied MOD expression.protected ObjectprocessMulExpression(Expression expr)Method to process the supplied MUL expression.protected ObjectprocessNegExpression(Expression expr)Method to process the supplied NEG expression.protected ObjectprocessNoteqExpression(Expression expr)Method to process the supplied NOTEQ expression.protected ObjectprocessNotExpression(Expression expr)Method to process the supplied NOT expression.protected ObjectprocessNotInExpression(Expression expr)Method to process the supplied NOT IN expression.protected ObjectprocessOrExpression(Expression expr)Method to process the supplied OR expression.protected ObjectprocessParameterExpression(ParameterExpression expr)Method to process the supplied parameter expression.protected ObjectprocessPrimaryExpression(PrimaryExpression expr)Method to process the supplied primary expression.protected ObjectprocessSubExpression(Expression expr)Method to process the supplied SUB expression.protected ObjectprocessVariableExpression(VariableExpression expr)Method to process the supplied variable expression.voidremoveVariableValue(String id)Method to remove a variable value.voidsetVariableValue(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
-
-
-
-
Constructor Detail
-
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 Detail
-
getParameterValues
public Map getParameterValues()
-
getQueryLanguage
public String getQueryLanguage()
-
processAndExpression
protected Object processAndExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied AND expression. To be implemented by subclasses.- Overrides:
processAndExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processOrExpression
protected Object processOrExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied OR expression. To be implemented by subclasses.- Overrides:
processOrExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processBitOrExpression
protected Object processBitOrExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied BITWISE OR expression. To be implemented by subclasses.- Overrides:
processBitOrExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processBitAndExpression
protected Object processBitAndExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied BITWISE AND expression. To be implemented by subclasses.- Overrides:
processBitAndExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processBitXorExpression
protected Object processBitXorExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied BITWISE XOR expression. To be implemented by subclasses.- Overrides:
processBitXorExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processEqExpression
protected Object processEqExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied EQ expression. To be implemented by subclasses.- Overrides:
processEqExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processLikeExpression
protected Object processLikeExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied LIKE expression. To be implemented by subclasses.- Overrides:
processLikeExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processNoteqExpression
protected Object processNoteqExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied NOTEQ expression. To be implemented by subclasses.- Overrides:
processNoteqExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processGteqExpression
protected Object processGteqExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied GTEQ expression. To be implemented by subclasses.- Overrides:
processGteqExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processGtExpression
protected Object processGtExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied GT expression. To be implemented by subclasses.- Overrides:
processGtExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processIsExpression
protected Object processIsExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied IS (instanceof) expression. To be implemented by subclasses.- Overrides:
processIsExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processIsnotExpression
protected Object processIsnotExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied ISNOT (!instanceof) expression. To be implemented by subclasses.- Overrides:
processIsnotExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processCastExpression
protected Object processCastExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied cast expression. To be implemented by subclasses.- Overrides:
processCastExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processLteqExpression
protected Object processLteqExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied LTEQ expression. To be implemented by subclasses.- Overrides:
processLteqExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processLtExpression
protected Object processLtExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied LT expression. To be implemented by subclasses.- Overrides:
processLtExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processAddExpression
protected Object processAddExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied ADD expression. To be implemented by subclasses.- Overrides:
processAddExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processSubExpression
protected Object processSubExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied SUB expression. To be implemented by subclasses.- Overrides:
processSubExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processDivExpression
protected Object processDivExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied DIV expression. To be implemented by subclasses.- Overrides:
processDivExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processModExpression
protected Object processModExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied MOD expression. To be implemented by subclasses.- Overrides:
processModExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processMulExpression
protected Object processMulExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied MUL expression. To be implemented by subclasses.- Overrides:
processMulExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processNegExpression
protected Object processNegExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied NEG expression. To be implemented by subclasses.- Overrides:
processNegExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processComExpression
protected Object processComExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied COM expression. To be implemented by subclasses.- Overrides:
processComExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processNotExpression
protected Object processNotExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied NOT expression. To be implemented by subclasses.- Overrides:
processNotExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processCreatorExpression
protected Object processCreatorExpression(CreatorExpression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied creator expression. To be implemented by subclasses.- Overrides:
processCreatorExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processInvokeExpression
protected Object processInvokeExpression(InvokeExpression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied invoke expression. To be implemented by subclasses.- Overrides:
processInvokeExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processInExpression
protected Object processInExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied IN expression. To be implemented by subclasses.- Overrides:
processInExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processNotInExpression
protected Object processNotInExpression(Expression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied NOT IN expression. To be implemented by subclasses.- Overrides:
processNotInExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processLiteral
protected Object processLiteral(Literal expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied invoke expression. To be implemented by subclasses.- Overrides:
processLiteralin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processVariableExpression
protected Object processVariableExpression(VariableExpression expr)
Method to process the supplied variable expression. To be implemented by subclasses.- Overrides:
processVariableExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processParameterExpression
protected Object processParameterExpression(ParameterExpression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied parameter expression. To be implemented by subclasses.- Overrides:
processParameterExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processPrimaryExpression
protected Object processPrimaryExpression(PrimaryExpression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied primary expression. To be implemented by subclasses.- Overrides:
processPrimaryExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
processCaseExpression
protected Object processCaseExpression(CaseExpression expr)
Description copied from class:AbstractExpressionEvaluatorMethod to process the supplied case expression. To be implemented by subclasses.- Overrides:
processCaseExpressionin classAbstractExpressionEvaluator- Parameters:
expr- The expression- Returns:
- The result
-
getValueForInvokeExpression
public Object getValueForInvokeExpression(InvokeExpression invokeExpr)
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
-
getValueForExpression
public Object getValueForExpression(Expression expr)
-
getIntegerForLiteral
public int getIntegerForLiteral(Literal lit)
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
public Object getValueForPrimaryExpression(PrimaryExpression primExpr)
Convenience method to get the value for a PrimaryExpression.- Parameters:
primExpr- Expression- Returns:
- The value in the object for this expression
-
setVariableValue
public void setVariableValue(String id, Object value)
Method to set the value for a variable.- Parameters:
id- Id of the variablevalue- The value to use
-
removeVariableValue
public void removeVariableValue(String id)
Method to remove a variable value.- Parameters:
id- The id of the variable
-
getValueForVariableExpression
public Object getValueForVariableExpression(VariableExpression varExpr)
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.
-
-