|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.ow2.jonas.lib.ejb21.sql.EjbqlAbstractVisitor org.ow2.jonas.lib.ejb21.sql.EjbqlQueryFilterVisitor
public class EjbqlQueryFilterVisitor
Implementation of a visitor that creates the filter corresponding to the WHERE clause. Created on Sep 6, 2002
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.ow2.jonas.lib.ejb21.sql.EjbqlAbstractVisitor |
---|
EjbqlAbstractVisitor.IdValue, EjbqlAbstractVisitor.VisitorException |
Constructor Summary | |
---|---|
EjbqlQueryFilterVisitor(org.objectweb.jorm.api.PMapper _mapper,
Map _fields,
Class[] parameterTypes,
ASTEJBQL ejbql,
org.objectweb.medor.query.jorm.lib.QueryBuilder qb)
Constructor |
Method Summary | |
---|---|
org.objectweb.medor.expression.api.Expression |
getQueryFilter()
get the query filter that was built from visiting the syntaxic tree |
Object |
visit(ASTArithmeticExpression node,
Object data)
Push corresponding Expression to the stack. arithmetic_expression ::= arithmetic_term [ { + | - } arithmetic_term ] * |
Object |
visit(ASTArithmeticFactor node,
Object data)
Push corresponding Expression to the stack. arithmetic_factor ::= [ + |- ] arithmetic_primary |
Object |
visit(ASTArithmeticLiteral node,
Object data)
Visit child nodes arithmetic_literal ::= integer_literal | floatingpoint_literal |
Object |
visit(ASTArithmeticTerm node,
Object data)
Push corresponding Expression to the stack. arithmetic_term ::= arithmetic_factor [ { * | / } arithmetic_factor ]* |
Object |
visit(ASTBetweenExpression node,
Object data)
Push corresponding Expression to the stack. between_expression ::= arithmetic_expression [ NOT ] BETWEEN arithmetic_expression AND arithmetic_expression |
Object |
visit(ASTBooleanExpression node,
Object data)
Visit child nodes boolean_expression ::= cmp_path_expression | boolean_literal | input_parameter |
Object |
visit(ASTBooleanLiteral node,
Object data)
Node with value set to litteral boolean. |
Object |
visit(ASTCmpPathExpression node,
Object data)
Push corresponding MedorField to the stack. cmp_path_expression ::= path was in initial BNF cmp_path_expression ::= identification_variable. |
Object |
visit(ASTCollectionMemberExpression node,
Object data)
Push corresponding Expression to the stack. collection_member_expression ::= {single_valued_cmr_path_expression | identification_variable | input_parameter} [ NOT ] MEMBER [ OF ] collection_valued_path_expression |
Object |
visit(ASTCollectionValuedPathExpression node,
Object data)
Push corresponding MedorField to the stack. collection_valued_path_expression ::= path was in initial BNF collection_valued_path_expression ::= identification_variable. |
Object |
visit(ASTComparisonExpression node,
Object data)
Push corresponding Expression to the stack. comparison_expression ::= string_value { = | > | >= | < | <= | <> } string_expression | boolean_value { = | <>} boolean_expression | datetime_value { = | > | >= | < | <= | <> } datetime_expression | entity_bean_value { = | <> } entity_bean_expression | arithmetic_value { = | > | >= | < | <= | <> } single_value_designator |
Object |
visit(ASTConditionalExpression node,
Object data)
Push corresponding Expression to the stack. conditional_expression ::= conditional_term [ OR conditional_term ]* |
Object |
visit(ASTConditionalFactor node,
Object data)
Push corresponding Expression to the stack. conditional_factor ::= [ NOT ] conditional_test |
Object |
visit(ASTConditionalTerm node,
Object data)
Push corresponding Expression to the stack. conditional_term ::= conditional_factor [ AND conditional_factor ]* |
Object |
visit(ASTDatetimeExpression node,
Object data)
Visit child nodes datetime_expression ::= datetime_value | input_parameter |
Object |
visit(ASTEmptyCollectionComparisonExpression node,
Object data)
Nothing to do: Already taken into account in EjbqlVariableVisitor at the variables parsing, so, just push the OP_IGNORE in the stack empty_collection_comparison_expression ::= collection_valued_path_expression IS [ NOT ] EMPTY |
Object |
visit(ASTEntityBeanExpression node,
Object data)
Visit child nodes entity_bean_expression ::= entity_bean_value | input_parameter |
Object |
visit(ASTFloatingPointLiteral node,
Object data)
Node with value set to integer litteral arithmetic. |
Object |
visit(ASTFunctionsReturningNumerics node,
Object data)
visit child nodes Push corresponding Expression to the stack. functions_returning_numerics ::= LENGTH (string_expression) | LOCATE (string_expression, string_expression [ , arithmetic_expression ] ) | ABS (arithmetic_expression) | SQRT (arithmetic_expression) | MOD (arithmetic_expression , arithmetic_expression) |
Object |
visit(ASTFunctionsReturningStrings node,
Object data)
visit child nodes Push corresponding Expression to the stack. functions_returning_strings ::= CONCAT (string_expression, string_expression) | SUBSTRING (string_expression,arithmetic_expression,arithmetic_expression) |
Object |
visit(ASTIdentificationVariable node,
Object data)
Node with value set to identification variable string. |
Object |
visit(ASTInExpression node,
Object data)
Push corresponding Expression to the stack. in_expression ::= cmp_path_expression [ NOT ] IN {literal|input_parameter} [ , {literal|input_parameter} ] * ) |
Object |
visit(ASTInputParameter node,
Object data)
Node with value set to parameter index (1..n) string. |
Object |
visit(ASTIntegerLiteral node,
Object data)
Node with value set to integer litteral arithmetic. |
Object |
visit(ASTLikeExpression node,
Object data)
Push corresponding Expression to the stack. like_expression ::= cmp_path_expression [ NOT ] LIKE pattern_value [ ESCAPE escape_character ] |
Object |
visit(ASTLiteral node,
Object data)
Visit child nodes literal ::= string_literal | arithmetic_literal | boolean_literal |
Object |
visit(ASTNullComparisonExpression node,
Object data)
Push corresponding Expression to the stack. null_comparison_expression ::= {single_valued_path_expression|input_parameter} IS [ NOT ] NULL |
Object |
visit(ASTPath node,
Object data)
Push the Node to the stack |
Object |
visit(ASTSingleValuedCmrPathExpression node,
Object data)
Push corresponding MedorField to the stack. single_valued_cmr_path_expression ::= path was in initial BNF single_valued_cmr_path_expression ::= identification_variable. |
Object |
visit(ASTSingleValuedPathExpression node,
Object data)
Push corresponding MedorField to the stack. single_valued_path_expression ::= path was in initial BNF single_valued_path_expression ::= cmp_path_expression | single_valued_cmr_path_expression |
Object |
visit(ASTStringExpression node,
Object data)
Visit child nodes string_expression ::= string_primary | input_parameter |
Object |
visit(ASTStringLiteral node,
Object data)
Node with value set to litteral string. |
Object |
visit(ASTWhereClause node,
Object data)
If query contains WHERE clause, visit child nodes where_clause ::= WHERE conditional_expression |
Methods inherited from class org.ow2.jonas.lib.ejb21.sql.EjbqlAbstractVisitor |
---|
basePath, endsWith, mergePath, mergePath, splitPath, visit, visit, visit, visit, visit, visit, 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 EjbqlQueryFilterVisitor(org.objectweb.jorm.api.PMapper _mapper, Map _fields, Class[] parameterTypes, ASTEJBQL ejbql, org.objectweb.medor.query.jorm.lib.QueryBuilder qb) throws Exception
_mapper
- the mapper of each fields.
Needed to build the expression for the IsNull with a reference as an operand.
This parameter may be null in case of the GenIC phase_fields
- QueryTreeFields for all defined identifiers and all path expression of the queryparameterTypes
- Type of paramaters of the finder/select methodejbql
- root of the lexical tree of the query
Exception
Method Detail |
---|
public org.objectweb.medor.expression.api.Expression getQueryFilter()
public Object visit(ASTWhereClause node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTSingleValuedPathExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTCmpPathExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTSingleValuedCmrPathExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTCollectionValuedPathExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTConditionalExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTConditionalTerm node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTConditionalFactor node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTBetweenExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTInExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTLikeExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTNullComparisonExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTEmptyCollectionComparisonExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTCollectionMemberExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTComparisonExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTArithmeticExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTArithmeticTerm node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTArithmeticFactor node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTStringExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTDatetimeExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTBooleanExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTEntityBeanExpression node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTFunctionsReturningStrings node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTFunctionsReturningNumerics node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTIdentificationVariable node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTLiteral node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTStringLiteral node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTArithmeticLiteral node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTIntegerLiteral node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTFloatingPointLiteral node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTBooleanLiteral node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTInputParameter node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
public Object visit(ASTPath node, Object data)
visit
in interface EJBQLVisitor
visit
in class EjbqlAbstractVisitor
node
- the node to visitdata
- the current stack
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |