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

org.objectweb.speedo.runtime.query.parser.SpeedoQLAbstractVisitor
  |
  +--org.objectweb.speedo.runtime.query.parser.SpeedoQLQueryFilterVisitor
All Implemented Interfaces:
SpeedoQLVisitor

public class SpeedoQLQueryFilterVisitor
extends SpeedoQLAbstractVisitor

Implementation of a visitor that creates the filter


Inner classes inherited from class org.objectweb.speedo.runtime.query.parser.SpeedoQLAbstractVisitor
SpeedoQLAbstractVisitor.IdValue, SpeedoQLAbstractVisitor.VisitorException
 
Fields inherited from class org.objectweb.speedo.runtime.query.parser.SpeedoQLAbstractVisitor
CONTAINS_IN, CONTAINS_MEMBEROF, curClass, JORM_NAME, lastName, logger, NAVIGATION, params, UNDEFINED, vars
 
Constructor Summary
SpeedoQLQueryFilterVisitor(org.objectweb.medor.query.api.QueryTree qtree, ASTSpeedoQL speedoql)
          Constructor
 
Method Summary
 org.objectweb.medor.filter.api.Expression getQueryFilter()
          get the query filter that was built from visiting the syntaxic tree
 void startVisiting()
          the visit starts here, please before sets a list of variables.
 java.lang.Object visit(ASTAdditiveExpression node, java.lang.Object data)
           
 java.lang.Object visit(ASTArgumentList node, java.lang.Object data)
          4 cases to manage: (en cours par equipe MEDOR) - Collection.contains(Object o) - Collection.isEmpty() - String.startsWith(String s) - String.endsWith(String s)
 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)
          qualifiedname could be: - a class field (salary from Employee) - a parameter - a variable
 java.lang.Object visit(ASTRelationalExpression node, java.lang.Object data)
           
 java.lang.Object visit(ASTSpeedoPrimary 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)
           
 
Methods inherited from class org.objectweb.speedo.runtime.query.parser.SpeedoQLAbstractVisitor
alias2fullname, getEndString, getLogger, getLoggerFactory, getMedorFieldFromPath, mergePath, setCurrentClass, setLogger, setLoggerFactory, setParams, setVars, splitEndPath, splitPath, visit, visit, visit, withoutThis
 

Constructor Detail

SpeedoQLQueryFilterVisitor

public SpeedoQLQueryFilterVisitor(org.objectweb.medor.query.api.QueryTree qtree,
                                  ASTSpeedoQL speedoql)
Constructor
Parameters:
qtree - a QueryTree built with the list of variables, parameters and name.
speedoql - root of the lexical tree of the query
Method Detail

startVisiting

public void startVisiting()
                   throws java.lang.Exception
the visit starts here, please before sets a list of variables.
Throws:
java.lang.Exception -  

getQueryFilter

public org.objectweb.medor.filter.api.Expression getQueryFilter()
get the query filter that was built from visiting the syntaxic tree

visit

public java.lang.Object visit(ASTPrimary node,
                              java.lang.Object data)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTSpeedoPrimary node,
                              java.lang.Object data)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTRelationalExpression node,
                              java.lang.Object data)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTAdditiveExpression node,
                              java.lang.Object data)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTUnaryExpression node,
                              java.lang.Object data)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTCastExpression node,
                              java.lang.Object data)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTArgumentList node,
                              java.lang.Object data)
4 cases to manage: (en cours par equipe MEDOR) - Collection.contains(Object o) - Collection.isEmpty() - String.startsWith(String s) - String.endsWith(String s)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTLiteral node,
                              java.lang.Object data)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTType node,
                              java.lang.Object data)
Overrides:
visit in class SpeedoQLAbstractVisitor

visit

public java.lang.Object visit(ASTQualifiedName node,
                              java.lang.Object data)
qualifiedname could be: - a class field (salary from Employee) - a parameter - a variable
Overrides:
visit in class SpeedoQLAbstractVisitor