org.objectweb.jonas_ejb.lib
Class EjbqlSelectVisitor

java.lang.Object
  extended byorg.objectweb.jonas_ejb.lib.EjbqlAbstractVisitor
      extended byorg.objectweb.jonas_ejb.lib.EjbqlSelectVisitor
All Implemented Interfaces:
EJBQLVisitor

public class EjbqlSelectVisitor
extends EjbqlAbstractVisitor

Implementation of a visitor that creates the selection projection for corresponding to a given WHERE clause. Created on Sep 6, 2002

Author:
Christophe Ney [cney@batisseurs.com]: Initial developer, Helene Joanin: Take into account the EJBQL version 2.1 syntax., Helene Joanin: Take into account the aggregate select expression.

Nested Class Summary
 
Nested classes inherited from class org.objectweb.jonas_ejb.lib.EjbqlAbstractVisitor
EjbqlAbstractVisitor.IdValue, EjbqlAbstractVisitor.VisitorException
 
Constructor Summary
EjbqlSelectVisitor(ASTEJBQL ejbql, java.util.Map _fields, org.objectweb.medor.query.lib.SelectProject sp)
          Constructor
 
Method Summary
 org.objectweb.medor.query.api.QueryTree getQueryTree()
          get the query tree that was built from visiting the lexical tree.
 java.lang.Object visit(ASTAggregateSelectExpression node, java.lang.Object data)
          Visit child node
 java.lang.Object visit(ASTCmpPathExpression node, java.lang.Object data)
          Visit child node
 java.lang.Object visit(ASTIdentificationVariable node, java.lang.Object data)
          Push the Node to the stack
 java.lang.Object visit(ASTPath node, java.lang.Object data)
          Push the Node to the stack
 java.lang.Object visit(ASTSelectClause node, java.lang.Object data)
          Visit child node.
 java.lang.Object visit(ASTSelectExpression node, java.lang.Object data)
          Visit child node
 java.lang.Object visit(ASTSingleValuedCmrPathExpression node, java.lang.Object data)
          Visit child node
 java.lang.Object visit(ASTSingleValuedPathExpression node, java.lang.Object data)
          Visit child node
 
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, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, 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

EjbqlSelectVisitor

public EjbqlSelectVisitor(ASTEJBQL ejbql,
                          java.util.Map _fields,
                          org.objectweb.medor.query.lib.SelectProject sp)
                   throws java.lang.Exception
Constructor

Parameters:
ejbql - root of the lexical tree of the query
_fields - Map with (identifier,JormExtent) pairs
Method Detail

getQueryTree

public org.objectweb.medor.query.api.QueryTree getQueryTree()
get the query tree that was built from visiting the lexical tree. This is a nest if there is an aggregate function or a select projet otherwise.


visit

public java.lang.Object visit(ASTSelectClause node,
                              java.lang.Object data)
Visit child node. SELECT [ DISTINCT ] {select_expression | OBJECT (identification_variable)}

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

visit

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

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

visit

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

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

visit

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

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

visit

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

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

visit

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

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

visit

public java.lang.Object visit(ASTIdentificationVariable 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:
null

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:
null