Class QueryToMongoDBMapper
- java.lang.Object
-
- org.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
- org.datanucleus.store.mongodb.query.QueryToMongoDBMapper
-
- All Implemented Interfaces:
org.datanucleus.store.query.expression.ExpressionEvaluator
public class QueryToMongoDBMapper extends org.datanucleus.store.query.expression.AbstractExpressionEvaluator
Class which maps a compiled (generic) query to an MongoDB query.
-
-
Constructor Summary
Constructors Constructor Description QueryToMongoDBMapper(org.datanucleus.store.query.compiler.QueryCompilation compilation, Map parameters, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ExecutionContext ec, org.datanucleus.store.query.Query q)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
compile()
protected void
compileFilter()
Method to compile the WHERE clause of the queryprotected void
compileOrdering()
Method to compile the ordering clause of the queryprotected void
compileResult()
Method to compile the result clause of the queryprotected MongoFieldExpression
getFieldNameForPrimary(org.datanucleus.store.query.expression.PrimaryExpression expr)
Convenience method to return the "field name" in candidate document for this primary.MongoBooleanExpression
getFilterExpression()
protected MongoLiteral
getMongoLiteralForValue(Object value)
com.mongodb.BasicDBObject
getOrderingObject()
MongoDBResult
getResultObject()
boolean
isFilterComplete()
boolean
isOrderComplete()
boolean
isPrecompilable()
boolean
isResultComplete()
protected Object
processAndExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processEqExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processGteqExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processGtExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processInExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processInvokeExpression(org.datanucleus.store.query.expression.InvokeExpression expr)
protected Object
processLiteral(org.datanucleus.store.query.expression.Literal expr)
protected Object
processLteqExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processLtExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processNoteqExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processNotInExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processOrExpression(org.datanucleus.store.query.expression.Expression expr)
protected Object
processParameterExpression(org.datanucleus.store.query.expression.ParameterExpression expr)
protected Object
processPrimaryExpression(org.datanucleus.store.query.expression.PrimaryExpression expr)
-
Methods inherited from class org.datanucleus.store.query.expression.AbstractExpressionEvaluator
compileAdditiveMultiplicativeExpression, compileOrAndExpression, compilePrimaryExpression, compileRelationalExpression, compileUnaryExpression, evaluate, processAddExpression, processBitAndExpression, processBitOrExpression, processBitXorExpression, processCaseExpression, processCastExpression, processComExpression, processCreatorExpression, processDistinctExpression, processDivExpression, processIsExpression, processIsnotExpression, processLikeExpression, processModExpression, processMulExpression, processNegExpression, processNotExpression, processSubExpression, processSubqueryExpression, processVariableExpression
-
-
-
-
Constructor Detail
-
QueryToMongoDBMapper
public QueryToMongoDBMapper(org.datanucleus.store.query.compiler.QueryCompilation compilation, Map parameters, org.datanucleus.metadata.AbstractClassMetaData cmd, org.datanucleus.ExecutionContext ec, org.datanucleus.store.query.Query q)
-
-
Method Detail
-
isFilterComplete
public boolean isFilterComplete()
-
isOrderComplete
public boolean isOrderComplete()
-
isResultComplete
public boolean isResultComplete()
-
isPrecompilable
public boolean isPrecompilable()
-
getFilterExpression
public MongoBooleanExpression getFilterExpression()
-
getResultObject
public MongoDBResult getResultObject()
-
getOrderingObject
public com.mongodb.BasicDBObject getOrderingObject()
-
compile
public void compile()
-
compileFilter
protected void compileFilter()
Method to compile the WHERE clause of the query
-
compileResult
protected void compileResult()
Method to compile the result clause of the query
-
compileOrdering
protected void compileOrdering()
Method to compile the ordering clause of the query
-
processAndExpression
protected Object processAndExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processAndExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processOrExpression
protected Object processOrExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processOrExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processEqExpression
protected Object processEqExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processEqExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processNoteqExpression
protected Object processNoteqExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processNoteqExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processGtExpression
protected Object processGtExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processGtExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processLtExpression
protected Object processLtExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processLtExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processGteqExpression
protected Object processGteqExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processGteqExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processLteqExpression
protected Object processLteqExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processLteqExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processInExpression
protected Object processInExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processInExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processNotInExpression
protected Object processNotInExpression(org.datanucleus.store.query.expression.Expression expr)
- Overrides:
processNotInExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processPrimaryExpression
protected Object processPrimaryExpression(org.datanucleus.store.query.expression.PrimaryExpression expr)
- Overrides:
processPrimaryExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processParameterExpression
protected Object processParameterExpression(org.datanucleus.store.query.expression.ParameterExpression expr)
- Overrides:
processParameterExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
processLiteral
protected Object processLiteral(org.datanucleus.store.query.expression.Literal expr)
- Overrides:
processLiteral
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
getMongoLiteralForValue
protected MongoLiteral getMongoLiteralForValue(Object value)
-
processInvokeExpression
protected Object processInvokeExpression(org.datanucleus.store.query.expression.InvokeExpression expr)
- Overrides:
processInvokeExpression
in classorg.datanucleus.store.query.expression.AbstractExpressionEvaluator
-
getFieldNameForPrimary
protected MongoFieldExpression getFieldNameForPrimary(org.datanucleus.store.query.expression.PrimaryExpression expr)
Convenience method to return the "field name" in candidate document for this primary. Allows for simple relation fields, and (nested) embedded PC fields - i.e all fields that are present in the document.- Parameters:
expr
- The expression- Returns:
- The document field name for this primary (or null if not resolvable in this document)
-
-