org.objectweb.jonas_ejb.lib
Class EjbqlVariableVisitor

java.lang.Object
  extended by org.objectweb.jonas_ejb.lib.EjbqlAbstractVisitor
      extended by org.objectweb.jonas_ejb.lib.EjbqlVariableVisitor
All Implemented Interfaces:
EJBQLVisitor

public class EjbqlVariableVisitor
extends EjbqlAbstractVisitor

Implementation of a visitor that creates a map of pairs [name,QueryTreeField] for all defined identifiers of the query.

Author:
Christophe Ney [cney@batisseurs.com] Initial developper, Helene Joanin:

Nested Class Summary
 
Nested classes/interfaces inherited from class org.objectweb.jonas_ejb.lib.EjbqlAbstractVisitor
EjbqlAbstractVisitor.IdValue, EjbqlAbstractVisitor.VisitorException
 
Constructor Summary
EjbqlVariableVisitor(ASTEJBQL ejbql, DeploymentDescEjb2 dd, org.objectweb.medor.query.jorm.lib.QueryBuilder qb)
          constructor
 
Method Summary
 java.util.Map getFields()
          get the Map that was built from visiting the lexical query tree This map allows to get the org.objectweb.medor.api.Field from its name (ident or path).
 void traceIds(java.util.HashMap idsM)
          Trace the given ids structure
 java.lang.Object visit(ASTAbstractSchemaName node, java.lang.Object data)
          Push the Node to the stack
 java.lang.Object visit(ASTAggregateSelectExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTArithmeticExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTArithmeticFactor node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTArithmeticTerm node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTBetweenExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTBooleanExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTCmpPathExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTCollectionMemberDeclaration node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTCollectionMemberExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTCollectionValuedPathExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTComparisonExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTConditionalExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTConditionalFactor node, java.lang.Object data)
          Visit child nodes and count the number of the unary operator NOT.
 java.lang.Object visit(ASTConditionalTerm node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTDatetimeExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTEmptyCollectionComparisonExpression node, java.lang.Object data)
          visit child nodes and see if it's IS EMPTY or IS NOT EMPTY
 java.lang.Object visit(ASTEntityBeanExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTFromClause node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTFunctionsReturningNumerics node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTFunctionsReturningStrings node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTIdentificationVariable node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTIdentifier node, java.lang.Object data)
          Store the pair identifier,Node from the Stack in HashMap
 java.lang.Object visit(ASTInExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTLikeExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTNullComparisonExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTOrderByClause node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTOrderByItem node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTPath node, java.lang.Object data)
          Push the Node to the stack
 java.lang.Object visit(ASTRangeVariableDeclaration node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTSelectClause node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTSelectExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTSingleValuedCmrPathExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTSingleValuedPathExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTStringExpression node, java.lang.Object data)
          visit child nodes
 java.lang.Object visit(ASTWhereClause node, java.lang.Object data)
          visit child nodes
 
Methods inherited from class org.objectweb.jonas_ejb.lib.EjbqlAbstractVisitor
basePath, endsWith, mergePath, mergePath, splitPath, 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

EjbqlVariableVisitor

public EjbqlVariableVisitor(ASTEJBQL ejbql,
                            DeploymentDescEjb2 dd,
                            org.objectweb.medor.query.jorm.lib.QueryBuilder qb)
                     throws java.lang.Exception
constructor

Parameters:
ejbql - root of the lexical tree
dd - Deployment Descriptor
qb - query builder used to navigate paths
Throws:
java.lang.Exception - when error parsing
Method Detail

getFields

public java.util.Map getFields()
get the Map that was built from visiting the lexical query tree This map allows to get the org.objectweb.medor.api.Field from its name (ident or path).

Returns:
the Fields map

traceIds

public void traceIds(java.util.HashMap idsM)
Trace the given ids structure

Parameters:
idsM - identifiocators Map

visit

public java.lang.Object visit(ASTFromClause node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTCollectionMemberDeclaration node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTRangeVariableDeclaration node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTCollectionValuedPathExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTAbstractSchemaName node,
                              java.lang.Object data)
Push the Node to the stack

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTIdentifier node,
                              java.lang.Object data)
Store the pair identifier,Node from the Stack in HashMap

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTPath node,
                              java.lang.Object data)
Push the Node to the stack

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTSelectClause node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTSelectExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTAggregateSelectExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTIdentificationVariable node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTSingleValuedPathExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTSingleValuedCmrPathExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTCmpPathExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTWhereClause node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTConditionalExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTConditionalTerm node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTConditionalFactor node,
                              java.lang.Object data)
Visit child nodes and count the number of the unary operator NOT.

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTBetweenExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTInExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTLikeExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTNullComparisonExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTEmptyCollectionComparisonExpression node,
                              java.lang.Object data)
visit child nodes and see if it's IS EMPTY or IS NOT EMPTY

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTCollectionMemberExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTComparisonExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTArithmeticExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTArithmeticTerm node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTArithmeticFactor node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTStringExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTDatetimeExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTBooleanExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTEntityBeanExpression node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTFunctionsReturningStrings node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTFunctionsReturningNumerics node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTOrderByClause node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack

visit

public java.lang.Object visit(ASTOrderByItem node,
                              java.lang.Object data)
visit child nodes

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - the node to visit
data - the current stack
Returns:
the stack