org.ow2.jonas.lib.ejb21.sql
Class EjbqlLimitVisitor

java.lang.Object
  extended by org.ow2.jonas.lib.ejb21.sql.EjbqlAbstractVisitor
      extended by org.ow2.jonas.lib.ejb21.sql.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.ow2.jonas.lib.ejb21.sql.EjbqlAbstractVisitor
EjbqlAbstractVisitor.IdValue, EjbqlAbstractVisitor.VisitorException
 
Constructor Summary
EjbqlLimitVisitor(ASTEJBQL ejbql, Class[] paramTypes)
          Constructor
 
Method Summary
 EjbqlLimiterRange[] getLimiterRanges()
           
 Object visit(ASTInputParameter node, Object data)
          Node with value set to parameter index (1..n) string.
 Object visit(ASTIntegerLiteral node, Object data)
          Visit child nodes literal ::= integer_literal Push the corresponding EjbqlLimiterRange to the stack
 Object visit(ASTLimitClause node, Object data)
          Visit child node.
 Object visit(ASTLimitExpression node, Object data)
          Visit child node LimitExpression().
 
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, 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,
                         Class[] paramTypes)
                  throws Exception
Constructor

Parameters:
ejbql - root of the lexical tree of the query
paramTypes - Types of the parameters list of the finder/select method
Throws:
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 Object visit(ASTLimitClause node,
                    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 Object visit(ASTLimitExpression node,
                    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 Object visit(ASTIntegerLiteral node,
                    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 Object visit(ASTInputParameter node,
                    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


Copyright © 2010 OW2 Consortium. All Rights Reserved.