|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--openjava.ptree.util.ParseTreeVisitor | +--openjava.ptree.util.EvaluationShuttle | +--openjava.ptree.util.ScopeHandler | +--openjava.ptree.util.QueryExpander
QueryExpander
is a ParseTreeVisitor
which, as it passes
over a parse tree, converts QueryExpression
s into regular java
constructs.
The non-abstract derived class OJQueryExpander
does this by converting the
expression to a tree of SaffronRel
nodes, and
using an optimizer (SaffronPlanner
) to choose
the optimal java implementation.
Field Summary |
Fields inherited from class openjava.ptree.util.ScopeHandler |
|
Fields inherited from class openjava.ptree.util.EvaluationShuttle |
|
Constructor Summary | |
QueryExpander(Environment env)
|
Method Summary | |
Expression |
evaluateDown(BinaryExpression p)
Expands in union , minus , and
intersect . |
Expression |
evaluateDown(CastExpression p)
|
Statement |
evaluateDown(ForStatement p)
Expand 'for (< |
Expression |
evaluateDown(InsertExpression p)
|
Expression |
evaluateDown(MethodCall p)
Expands connection.contentsAsArray("qualifier","name") ,
which was probably generated by expanding connection.name . |
Expression |
evaluateDown(QueryExpression p)
|
Expression |
evaluateDown(UnaryExpression p)
Expands exists . |
protected abstract Expression |
expandExpression(Expression p)
Converts an Expression into a java expression which returns an
array. |
protected abstract Statement |
expandForIn(Variable var,
Expression p,
StatementList body)
Converts an Expression of the form for (variable in
exp) { body } into a regular java Statement . |
boolean |
isRelational(Expression p)
|
Methods inherited from class openjava.ptree.util.ScopeHandler |
evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateDown, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, evaluateUp, pop, push, pushClosedEnvironment |
Methods inherited from class openjava.ptree.util.ParseTreeVisitor |
visit, visit, visit, visit, visit, visit, visit, visit, visit |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public QueryExpander(Environment env)
Method Detail |
public Expression evaluateDown(QueryExpression p) throws ParseTreeException
evaluateDown
in class ScopeHandler
ParseTreeException
public Expression evaluateDown(InsertExpression p) throws ParseTreeException
evaluateDown
in class EvaluationShuttle
ParseTreeException
public boolean isRelational(Expression p)
public Expression evaluateDown(CastExpression p) throws ParseTreeException
evaluateDown
in class EvaluationShuttle
ParseTreeException
public Statement evaluateDown(ForStatement p) throws ParseTreeException
evaluateDown
in class ScopeHandler
ParseTreeException
public Expression evaluateDown(BinaryExpression p) throws ParseTreeException
in
union
, minus
, and
intersect
.
evaluateDown
in class EvaluationShuttle
ParseTreeException
public Expression evaluateDown(UnaryExpression p) throws ParseTreeException
exists
.
evaluateDown
in class EvaluationShuttle
ParseTreeException
public Expression evaluateDown(MethodCall p) throws ParseTreeException
connection.contentsAsArray("qualifier","name")
,
which was probably generated by expanding connection.name
.
evaluateDown
in class EvaluationShuttle
ParseTreeException
protected abstract Expression expandExpression(Expression p)
Expression
into a java expression which returns an
array.
protected abstract Statement expandForIn(Variable var, Expression p, StatementList body)
Expression
of the form for (variable in
exp) { body }
into a regular java Statement
.
|
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |