org.objectweb.speedo.runtime.query.parser
Class SpeedoQLAbstractVisitor

org.objectweb.speedo.runtime.query.parser.SpeedoQLAbstractVisitor
All Implemented Interfaces:
SpeedoQLVisitor
Direct Known Subclasses:
SpeedoQLQueryFilterVisitor, SpeedoQLVariableVisitor

public class SpeedoQLAbstractVisitor
implements SpeedoQLVisitor

Base class with visitor utility class and default implementation of visit methods


Inner Class Summary
protected  class SpeedoQLAbstractVisitor.IdValue
          Values associated with each declared identifiers
protected  class SpeedoQLAbstractVisitor.VisitorException
          Runtime Exception used to wrap exceptions thrown in visit methods
 
Field Summary
static int CONTAINS_IN
           
static int CONTAINS_MEMBEROF
           
protected  java.lang.String curClass
          the name of the current class
static int JORM_NAME
           
 java.lang.String lastName
           
 org.objectweb.util.monolog.api.Logger logger
          Logger for monolog.
static int NAVIGATION
           
protected  java.util.Map params
          params is an hashtable to store the parameters.
static int UNDEFINED
          int value to define the type of the IdValue object UNDEFINED : in case we don't know (default) JORM_NAME : jorm name (end point of the recursivity) NAVIGATION : the object is field to a field ...
protected  java.util.Map vars
          vars is an hashtable to store the variables.
 
Constructor Summary
SpeedoQLAbstractVisitor()
           
 
Method Summary
 java.lang.String alias2fullname(java.lang.String alias)
           
protected  java.lang.String getEndString(java.lang.String total)
           
 org.objectweb.util.monolog.api.Logger getLogger()
           
 org.objectweb.util.monolog.api.LoggerFactory getLoggerFactory()
           
protected  org.objectweb.medor.api.Field getMedorFieldFromPath(java.lang.String path, java.util.Map ids)
          return the JormField for a given path
protected  java.lang.String mergePath(java.lang.String[] path, int begin, int length)
           
 void setCurrentClass(java.lang.String curClass)
           
 void setLogger(org.objectweb.util.monolog.api.Logger logger)
           
 void setLoggerFactory(org.objectweb.util.monolog.api.LoggerFactory loggerFactory)
           
 void setParams(java.util.Map params)
          ********************* SETTER METHODS ************************************
 void setVars(java.util.Map vars)
           
protected  java.lang.String[] splitEndPath(java.lang.String path, java.lang.String prefix)
           
protected  java.lang.String[] splitPath(java.lang.String path)
          split a dot separated path into tokens
 java.lang.Object visit(ASTAdditiveExpression node, java.lang.Object data)
           
 java.lang.Object visit(ASTArgumentList node, java.lang.Object data)
           
 java.lang.Object visit(ASTCastExpression node, java.lang.Object data)
           
 java.lang.Object visit(ASTLiteral node, java.lang.Object data)
           
 java.lang.Object visit(ASTPrimary node, java.lang.Object data)
           
 java.lang.Object visit(ASTQualifiedName node, java.lang.Object data)
           
 java.lang.Object visit(ASTRelationalExpression node, java.lang.Object data)
           
 java.lang.Object visit(ASTSpeedoPrimary node, java.lang.Object data)
           
 java.lang.Object visit(ASTSpeedoQL node, java.lang.Object data)
           
 java.lang.Object visit(ASTType node, java.lang.Object data)
           
 java.lang.Object visit(ASTUnaryExpression node, java.lang.Object data)
           
 java.lang.Object visit(SimpleNode node)
          Visit method to call from constructor.
 java.lang.Object visit(SimpleNode node, java.lang.Object data)
          Generic visit method that traverses all child nodes
 java.lang.String withoutThis(java.lang.String aname)
           
 

Field Detail

params

protected java.util.Map params
params is an hashtable to store the parameters. key: name of the parameter value: a BasicFieldOperand

vars

protected java.util.Map vars
vars is an hashtable to store the variables. key: name of the variable value: the PType of the variable (from the declaration)

curClass

protected java.lang.String curClass
the name of the current class

UNDEFINED

public static final int UNDEFINED
int value to define the type of the IdValue object UNDEFINED : in case we don't know (default) JORM_NAME : jorm name (end point of the recursivity) NAVIGATION : the object is field to a field ... CONTAINS_IN : the id is a variable and used in a contains method CONTAINS_MEMBEROF : the id is a parameter and used in a contains method

JORM_NAME

public static final int JORM_NAME

NAVIGATION

public static final int NAVIGATION

CONTAINS_IN

public static final int CONTAINS_IN

CONTAINS_MEMBEROF

public static final int CONTAINS_MEMBEROF

logger

public org.objectweb.util.monolog.api.Logger logger
Logger for monolog.

lastName

public java.lang.String lastName
Constructor Detail

SpeedoQLAbstractVisitor

public SpeedoQLAbstractVisitor()
Method Detail

splitPath

protected java.lang.String[] splitPath(java.lang.String path)
split a dot separated path into tokens

splitEndPath

protected java.lang.String[] splitEndPath(java.lang.String path,
                                          java.lang.String prefix)

mergePath

protected java.lang.String mergePath(java.lang.String[] path,
                                     int begin,
                                     int length)

getEndString

protected java.lang.String getEndString(java.lang.String total)

getMedorFieldFromPath

protected org.objectweb.medor.api.Field getMedorFieldFromPath(java.lang.String path,
                                                              java.util.Map ids)
                                                       throws org.objectweb.medor.api.MedorException,
                                                              ParseException
return the JormField for a given path
Parameters:
path - the path of the JormField to return
ids - the map of (id,QueryTree)pairs;
Throws:
ParseException - if identification variable not found.
MedorException - if corresponding fielc does not exist

alias2fullname

public java.lang.String alias2fullname(java.lang.String alias)

withoutThis

public java.lang.String withoutThis(java.lang.String aname)

visit

public java.lang.Object visit(SimpleNode node)
                       throws java.lang.Exception
Visit method to call from constructor. Child node visitors get a java.util.Stack as data parameter.
Throws:
java.lang.Exception - any nested exception thrown from other visit method

visit

public java.lang.Object visit(SimpleNode node,
                              java.lang.Object data)
Generic visit method that traverses all child nodes
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTSpeedoPrimary node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTSpeedoQL node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTPrimary node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTRelationalExpression node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTAdditiveExpression node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTUnaryExpression node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTCastExpression node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTArgumentList node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTLiteral node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTType node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

visit

public java.lang.Object visit(ASTQualifiedName node,
                              java.lang.Object data)
Specified by:
visit in interface SpeedoQLVisitor

setParams

public void setParams(java.util.Map params)
********************* SETTER METHODS ************************************

setVars

public void setVars(java.util.Map vars)

setCurrentClass

public void setCurrentClass(java.lang.String curClass)

setLogger

public void setLogger(org.objectweb.util.monolog.api.Logger logger)

getLogger

public org.objectweb.util.monolog.api.Logger getLogger()

setLoggerFactory

public void setLoggerFactory(org.objectweb.util.monolog.api.LoggerFactory loggerFactory)

getLoggerFactory

public org.objectweb.util.monolog.api.LoggerFactory getLoggerFactory()