org.objectweb.speedo.query.parser
Class SpeedoQLAbstractVisitor

java.lang.Object
  extended byorg.objectweb.speedo.query.parser.SpeedoQLAbstractVisitor
All Implemented Interfaces:
org.objectweb.jorm.util.api.Loggable, SpeedoQLVisitor
Direct Known Subclasses:
SpeedoQLQueryFilterVisitor, SpeedoQLVariableVisitor

public class SpeedoQLAbstractVisitor
extends java.lang.Object
implements SpeedoQLVisitor, org.objectweb.jorm.util.api.Loggable

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


Nested 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 java.lang.Byte BEGIN_OPERAND_SUBSTRING
           
static int CONTAINS_OPERATOR
           
protected  java.lang.String curClass
          the name of the current class
 boolean debug
           
static int ENDS_WITH_OPERATOR
           
static int EQUALS_IGNORE_CASE_OPERATOR
           
static int EQUALS_OPERATOR
           
static int EXTENT
           
static int IN_COLLECTION
           
static int IS_EMPTY
           
static int IS_EMPTY_OPERATOR
           
static int IS_NOT_EMPTY
           
 java.lang.String lastName
           
static java.lang.Byte LENGTH_OPERAND_SUBSTRING
           
static int LENGTH_OPERATOR
           
 org.objectweb.util.monolog.api.Logger logger
          Logger for monolog.
static int MATCHES_OPERATOR
           
static int MEMBEROF
           
static java.lang.String[] METHODS_OPERATOR
           
static int NAVIGATION
           
protected  java.util.Map params
          params is an hashtable to store the parameters.
static int STARTS_WITH_OPERATOR
           
static java.lang.Byte STR_OPERAND_SUBSTRING
           
static int SUBSTRING_OPERATOR
           
static int TO_LOWER_OPERATOR
           
static int TO_UPPER_OPERATOR
           
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)
           
 java.lang.String buildStringwithout(java.lang.String[] ss, int toforget, java.lang.String sep)
           
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
 int isMethodOperator(java.lang.String str)
           
protected  java.lang.String mergePath(java.lang.String[] path)
           
protected  java.lang.String mergePath(java.lang.String[] path, int begin, int length)
           
static java.lang.String operationToString(int oc)
           
 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)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

METHODS_OPERATOR

public static final java.lang.String[] METHODS_OPERATOR

MATCHES_OPERATOR

public static final int MATCHES_OPERATOR
See Also:
Constant Field Values

STARTS_WITH_OPERATOR

public static final int STARTS_WITH_OPERATOR
See Also:
Constant Field Values

ENDS_WITH_OPERATOR

public static final int ENDS_WITH_OPERATOR
See Also:
Constant Field Values

EQUALS_OPERATOR

public static final int EQUALS_OPERATOR
See Also:
Constant Field Values

EQUALS_IGNORE_CASE_OPERATOR

public static final int EQUALS_IGNORE_CASE_OPERATOR
See Also:
Constant Field Values

TO_UPPER_OPERATOR

public static final int TO_UPPER_OPERATOR
See Also:
Constant Field Values

TO_LOWER_OPERATOR

public static final int TO_LOWER_OPERATOR
See Also:
Constant Field Values

LENGTH_OPERATOR

public static final int LENGTH_OPERATOR
See Also:
Constant Field Values

SUBSTRING_OPERATOR

public static final int SUBSTRING_OPERATOR
See Also:
Constant Field Values

CONTAINS_OPERATOR

public static final int CONTAINS_OPERATOR
See Also:
Constant Field Values

IS_EMPTY_OPERATOR

public static final int IS_EMPTY_OPERATOR
See Also:
Constant Field Values

STR_OPERAND_SUBSTRING

public static final java.lang.Byte STR_OPERAND_SUBSTRING

BEGIN_OPERAND_SUBSTRING

public static final java.lang.Byte BEGIN_OPERAND_SUBSTRING

LENGTH_OPERAND_SUBSTRING

public static final java.lang.Byte LENGTH_OPERAND_SUBSTRING

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

See Also:
Constant Field Values

EXTENT

public static final int EXTENT
See Also:
Constant Field Values

NAVIGATION

public static final int NAVIGATION
See Also:
Constant Field Values

IN_COLLECTION

public static final int IN_COLLECTION
See Also:
Constant Field Values

MEMBEROF

public static final int MEMBEROF
See Also:
Constant Field Values

IS_EMPTY

public static final int IS_EMPTY
See Also:
Constant Field Values

IS_NOT_EMPTY

public static final int IS_NOT_EMPTY
See Also:
Constant Field Values

logger

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


debug

public boolean debug

lastName

public java.lang.String lastName
Constructor Detail

SpeedoQLAbstractVisitor

public SpeedoQLAbstractVisitor()
Method Detail

operationToString

public static final java.lang.String operationToString(int oc)

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)

mergePath

protected java.lang.String mergePath(java.lang.String[] path)
Parameters:
path - the input path
Returns:
the merge tokens into a dot separated path

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.
org.objectweb.medor.api.MedorException - if corresponding fielc does not exist

alias2fullname

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

buildStringwithout

public java.lang.String buildStringwithout(java.lang.String[] ss,
                                           int toforget,
                                           java.lang.String sep)

withoutThis

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

isMethodOperator

public int isMethodOperator(java.lang.String str)

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)
Specified by:
setLogger in interface org.objectweb.jorm.util.api.Loggable

getLogger

public org.objectweb.util.monolog.api.Logger getLogger()
Specified by:
getLogger in interface org.objectweb.jorm.util.api.Loggable

setLoggerFactory

public void setLoggerFactory(org.objectweb.util.monolog.api.LoggerFactory loggerFactory)
Specified by:
setLoggerFactory in interface org.objectweb.jorm.util.api.Loggable

getLoggerFactory

public org.objectweb.util.monolog.api.LoggerFactory getLoggerFactory()
Specified by:
getLoggerFactory in interface org.objectweb.jorm.util.api.Loggable