org.objectweb.jonas_ejb.lib
Class EjbqlLimitVisitor

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

public class EjbqlLimitVisitor
extends EjbqlAbstractVisitor

Implementation of a visitor that creates the limiter ranges corresponding to the LIMIT clause

Author:
Cyrille Blot : Initial developer, Helene Joanin

Nested Class Summary
 
Nested classes/interfaces inherited from class org.objectweb.jonas_ejb.lib.EjbqlAbstractVisitor
EjbqlAbstractVisitor.IdValue, EjbqlAbstractVisitor.VisitorException
 
Constructor Summary
EjbqlLimitVisitor(ASTEJBQL ejbql, java.lang.Class[] paramTypes)
          Constructor
 
Method Summary
 EjbqlLimiterRange[] getLimiterRanges()
           
 java.lang.Object visit(ASTInputParameter node, java.lang.Object data)
          Node with value set to parameter index (1..n) string.
 java.lang.Object visit(ASTIntegerLiteral node, java.lang.Object data)
          Visit child nodes literal ::= integer_literal Push the corresponding EjbqlLimiterRange to the stack
 java.lang.Object visit(ASTLimitClause node, java.lang.Object data)
          Visit child node.
 java.lang.Object visit(ASTLimitExpression node, java.lang.Object data)
          Visit child node LimitExpression().
 
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, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EjbqlLimitVisitor

public EjbqlLimitVisitor(ASTEJBQL ejbql,
                         java.lang.Class[] paramTypes)
                  throws java.lang.Exception
Constructor

Parameters:
ejbql - root of the lexical tree of the query
paramTypes - Types of the parameters list of the finder/select method
Throws:
java.lang.Exception - in error case
Method Detail

getLimiterRanges

public EjbqlLimiterRange[] getLimiterRanges()
Returns:
returns the limiter ranges of the LIMIT clause. May be 0 element if no LIMIT clause, 1 or 2 elements otherwise.

visit

public java.lang.Object visit(ASTLimitClause node,
                              java.lang.Object data)
Visit child node. LIMIT LimitExpression() ( , LimitExpression())?

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - sub-root of the lexical tree
data - stack
Returns:
returns null

visit

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

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - sub-root of the lexical tree
data - stack
Returns:
returns null

visit

public java.lang.Object visit(ASTIntegerLiteral node,
                              java.lang.Object data)
Visit child nodes literal ::= integer_literal Push the corresponding EjbqlLimiterRange to the stack

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - sub-root of the lexical tree
data - stack
Returns:
returns null

visit

public java.lang.Object visit(ASTInputParameter node,
                              java.lang.Object data)
Node with value set to parameter index (1..n) string. Push the corresponding EjbqlLimiterRange to the stack

Specified by:
visit in interface EJBQLVisitor
Overrides:
visit in class EjbqlAbstractVisitor
Parameters:
node - sub-root of the lexical tree
data - stack
Returns:
returns null