|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.datanucleus.query.compiler.JavaQueryCompiler
public abstract class JavaQueryCompiler
Typical implementation of a compiler for a java-based query language. The constructor takes in the components of the query, and the method compile() compiles it returning the compiled query, for use elsewhere.
Each "Expression" is effectively a tree of Expressions. You can navigate through each expression based on their type. For example, a DyadicExpression has a "left" and "right" and an operator between them. The left could also be a DyadicExpression, so you would navigate to its left/right components etc etc.
| Field Summary | |
|---|---|
protected java.lang.String |
candidateAlias
Alias for the primary candidate. |
protected java.lang.Class |
candidateClass
Primary candidate class (if defined). |
protected java.util.Collection |
candidates
|
protected boolean |
caseSensitiveAliases
|
protected ClassLoaderResolver |
clr
|
protected java.lang.String |
filter
|
protected java.lang.String |
from
|
protected java.lang.String |
grouping
|
protected java.lang.String |
having
|
protected Imports |
imports
|
protected static Localiser |
LOCALISER
Localisation utility for output messages |
protected MetaDataManager |
metaDataManager
|
protected java.lang.String |
ordering
|
protected java.lang.String |
parameters
|
protected JavaQueryCompiler |
parentCompiler
|
protected Parser |
parser
Parser specific to the type of query being compiled. |
protected java.lang.String |
result
|
protected SymbolTable |
symtbl
Compiled Symbol Table. |
protected java.lang.String |
update
|
protected java.lang.String |
variables
|
| Constructor Summary | |
|---|---|
JavaQueryCompiler(MetaDataManager metaDataManager,
ClassLoaderResolver clr,
java.lang.String from,
java.lang.Class candidateClass,
java.util.Collection candidates,
java.lang.String filter,
Imports imports,
java.lang.String ordering,
java.lang.String result,
java.lang.String grouping,
java.lang.String having,
java.lang.String params,
java.lang.String variables,
java.lang.String update)
|
|
| Method Summary | |
|---|---|
abstract QueryCompilation |
compile(java.util.Map parameters,
java.util.Map subqueryMap)
Method to compile the query. |
void |
compileCandidatesParametersVariables(java.util.Map parameters)
Compile the candidates, variables and parameters. |
Expression |
compileFilter()
Compile the filter and return the compiled expression. |
protected Expression[] |
compileFrom()
Method to compile the "from" clause (if present for the query language). |
Expression[] |
compileGrouping()
|
Expression |
compileHaving()
|
Expression[] |
compileOrdering()
|
Expression[] |
compileResult()
|
Expression[] |
compileUpdate()
|
abstract java.lang.String |
getLanguage()
Accessor for the query language name. |
java.lang.Class |
getPrimaryClass()
Accessor for the candidate class of the query. |
java.lang.Class |
getType(java.util.List tuples)
|
protected abstract boolean |
isKeyword(java.lang.String name)
Method to return if the supplied name is a keyword. |
java.lang.Class |
resolveClass(java.lang.String className)
Method to perform a lookup of the class name from the input name. |
void |
setParentQueryCompiler(JavaQueryCompiler compiler)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.datanucleus.query.symbol.SymbolResolver |
|---|
caseSensitiveSymbolNames, supportsImplicitVariables |
| Field Detail |
|---|
protected static final Localiser LOCALISER
protected JavaQueryCompiler parentCompiler
protected final MetaDataManager metaDataManager
protected final ClassLoaderResolver clr
protected boolean caseSensitiveAliases
protected java.lang.Class candidateClass
protected java.lang.String candidateAlias
protected java.lang.String from
protected java.util.Collection candidates
protected java.lang.String update
protected java.lang.String filter
protected java.lang.String ordering
protected java.lang.String parameters
protected java.lang.String variables
protected java.lang.String grouping
protected java.lang.String having
protected java.lang.String result
protected Imports imports
protected SymbolTable symtbl
protected Parser parser
| Constructor Detail |
|---|
public JavaQueryCompiler(MetaDataManager metaDataManager,
ClassLoaderResolver clr,
java.lang.String from,
java.lang.Class candidateClass,
java.util.Collection candidates,
java.lang.String filter,
Imports imports,
java.lang.String ordering,
java.lang.String result,
java.lang.String grouping,
java.lang.String having,
java.lang.String params,
java.lang.String variables,
java.lang.String update)
| Method Detail |
|---|
public abstract java.lang.String getLanguage()
public void setParentQueryCompiler(JavaQueryCompiler compiler)
public abstract QueryCompilation compile(java.util.Map parameters,
java.util.Map subqueryMap)
parameters - The parameter values keyed by name.subqueryMap - Map of subqueries keyed by the subquery name
public void compileCandidatesParametersVariables(java.util.Map parameters)
parameters - Map of parameter values keyed by their nameprotected Expression[] compileFrom()
public Expression[] compileUpdate()
public Expression compileFilter()
public Expression[] compileResult()
public Expression[] compileGrouping()
public Expression compileHaving()
public Expression[] compileOrdering()
public java.lang.Class getPrimaryClass()
SymbolResolver
getPrimaryClass in interface SymbolResolverpublic java.lang.Class resolveClass(java.lang.String className)
resolveClass in interface SymbolResolverclassName - Name of the class
ClassNotResolvedException - thrown if not resolvable using imports or entity namepublic java.lang.Class getType(java.util.List tuples)
getType in interface SymbolResolverprotected abstract boolean isKeyword(java.lang.String name)
name - The name
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||