org.hibernate.hql.ast
Class SqlGenerator

java.lang.Object
  extended by antlr.TreeParser
      extended by org.hibernate.hql.antlr.SqlGeneratorBase
          extended by org.hibernate.hql.ast.SqlGenerator
All Implemented Interfaces:
SqlTokenTypes, ErrorReporter

public class SqlGenerator
extends SqlGeneratorBase
implements ErrorReporter

Generates SQL by overriding callback methods in the base class, which does the actual SQL AST walking.

Author:
Joshua Davis, Steve Ebersole

Field Summary
 
Fields inherited from class org.hibernate.hql.antlr.SqlGeneratorBase
_tokenNames, _tokenSet_0, _tokenSet_1, _tokenSet_2, _tokenSet_3, _tokenSet_4, _tokenSet_5
 
Fields inherited from class antlr.TreeParser
_retTree, astFactory, ASTNULL, inputState, returnAST, tokenNames, traceDepth
 
Fields inherited from interface org.hibernate.hql.antlr.SqlTokenTypes
AGGREGATE, ALIAS, ALIAS_REF, ALL, AND, ANY, AS, ASCENDING, AVG, BETWEEN, BOGUS, BOTH, CASE, CASE2, CLASS, CLOSE, CLOSE_BRACKET, COLON, COMMA, CONCAT, CONSTANT, CONSTRUCTOR, COUNT, DELETE, DESCENDING, DISTINCT, DIV, DOT, ELEMENTS, ELSE, EMPTY, END, EOF, EQ, ESCAPE, ESCqs, EXISTS, EXPONENT, EXPR_LIST, FALSE, FETCH, FILTER_ENTITY, FILTERS, FLOAT_SUFFIX, FROM, FROM_FRAGMENT, FULL, GE, GROUP, GT, HAVING, HEX_DIGIT, ID_LETTER, ID_START_LETTER, IDENT, IMPLIED_FROM, IN, IN_LIST, INDEX_OP, INDICES, INNER, INSERT, INTO, IS, IS_NOT_NULL, IS_NULL, JAVA_CONSTANT, JOIN, JOIN_FRAGMENT, LE, LEADING, LEFT, LEFT_OUTER, LIKE, LITERAL_ascending, LITERAL_by, LITERAL_descending, LT, MAX, MEMBER, METHOD_CALL, METHOD_NAME, MIN, MINUS, NAMED_PARAM, NE, NEW, NOT, NOT_BETWEEN, NOT_IN, NOT_LIKE, NULL, NULL_TREE_LOOKAHEAD, NUM_DOUBLE, NUM_FLOAT, NUM_INT, NUM_LONG, OBJECT, OF, ON, OPEN, OPEN_BRACKET, OR, ORDER, ORDER_ELEMENT, OUTER, PARAM, PLUS, PROPERTIES, PROPERTY_REF, QUERY, QUOTED_STRING, RANGE, RIGHT, RIGHT_OUTER, ROW_STAR, SELECT, SELECT_CLAUSE, SELECT_COLUMNS, SELECT_EXPR, SELECT_FROM, SET, SOME, SQL_NE, SQL_NODE, SQL_TOKEN, STAR, SUM, THEN, THETA_JOINS, TRAILING, TRUE, UNARY_MINUS, UNARY_PLUS, UNION, UPDATE, VECTOR_EXPR, VERSIONED, WEIRD_IDENT, WHEN, WHERE, WITH, WS
 
Constructor Summary
SqlGenerator(SessionFactoryImplementor sfi)
           
 
Method Summary
protected  void beginFunctionTemplate(antlr.collections.AST m, antlr.collections.AST i)
           
protected  void commaBetweenParameters(String comma)
           
protected  void endFunctionTemplate(antlr.collections.AST m)
           
protected  void fromFragmentSeparator(antlr.collections.AST a)
           
 ParseErrorHandler getParseErrorHandler()
           
 String getSQL()
           
protected  void nestedFromFragment(antlr.collections.AST d, antlr.collections.AST parent)
           
protected  void optionalSpace()
          Add a aspace if the previous token was not a space or a parenthesis.
protected  void out(antlr.collections.AST n)
           
protected  void out(String s)
           
static void panic()
           
 void reportError(antlr.RecognitionException e)
           
 void reportError(String s)
           
 void reportWarning(String s)
           
 
Methods inherited from class org.hibernate.hql.antlr.SqlGeneratorBase
additiveExpr, addrExpr, aggregate, arguments, arithmeticExpr, binaryComparisonExpression, booleanExpr, booleanOp, caseExpr, comparisonExpr, conditionList, constant, count, countExpr, deleteStatement, distinctOrAll, exoticComparisonExpression, expr, filters, from, fromTable, getLastChar, getStringBuffer, groupExprs, hasText, inList, insertStatement, likeEscape, methodCall, multiplicativeExpr, nestedExpr, nestedExprAfterMinusDiv, nyi, orderDirection, orderExprs, parameter, parenSelect, quantified, selectAtom, selectClause, selectColumn, selectExpr, selectStatement, separator, setClause, simpleExpr, simpleExprList, sqlToken, statement, tableJoin, thetaJoins, updateStatement, whereClause, whereClauseExpr, whereExpr
 
Methods inherited from class antlr.TreeParser
getAST, getASTFactory, getTokenName, getTokenNames, match, match, matchNot, setASTFactory, setASTNodeClass, setASTNodeType, traceIn, traceIndent, traceOut
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SqlGenerator

public SqlGenerator(SessionFactoryImplementor sfi)
Method Detail

out

protected void out(String s)
Overrides:
out in class SqlGeneratorBase

out

protected void out(antlr.collections.AST n)
Overrides:
out in class SqlGeneratorBase

commaBetweenParameters

protected void commaBetweenParameters(String comma)
Overrides:
commaBetweenParameters in class SqlGeneratorBase

reportError

public void reportError(antlr.RecognitionException e)
Specified by:
reportError in interface ErrorReporter
Overrides:
reportError in class antlr.TreeParser

reportError

public void reportError(String s)
Specified by:
reportError in interface ErrorReporter
Overrides:
reportError in class antlr.TreeParser

reportWarning

public void reportWarning(String s)
Specified by:
reportWarning in interface ErrorReporter
Overrides:
reportWarning in class antlr.TreeParser

getParseErrorHandler

public ParseErrorHandler getParseErrorHandler()

getSQL

public String getSQL()

optionalSpace

protected void optionalSpace()
Description copied from class: SqlGeneratorBase
Add a aspace if the previous token was not a space or a parenthesis.

Overrides:
optionalSpace in class SqlGeneratorBase

beginFunctionTemplate

protected void beginFunctionTemplate(antlr.collections.AST m,
                                     antlr.collections.AST i)
Overrides:
beginFunctionTemplate in class SqlGeneratorBase

endFunctionTemplate

protected void endFunctionTemplate(antlr.collections.AST m)
Overrides:
endFunctionTemplate in class SqlGeneratorBase

panic

public static void panic()

fromFragmentSeparator

protected void fromFragmentSeparator(antlr.collections.AST a)
Overrides:
fromFragmentSeparator in class SqlGeneratorBase

nestedFromFragment

protected void nestedFromFragment(antlr.collections.AST d,
                                  antlr.collections.AST parent)
Overrides:
nestedFromFragment in class SqlGeneratorBase