org.hibernate.hql.ast
Class SqlASTFactory

java.lang.Object
  extended by antlr.ASTFactory
      extended by org.hibernate.hql.ast.SqlASTFactory
All Implemented Interfaces:
HqlSqlTokenTypes

public class SqlASTFactory
extends antlr.ASTFactory
implements HqlSqlTokenTypes

Custom AST factory the intermediate tree that causes ANTLR to create specialized AST nodes, given the AST node type (from HqlSqlTokenTypes). HqlSqlWalker registers this factory with itself when it is initialized.

Author:
Joshua

Field Summary
 
Fields inherited from class antlr.ASTFactory
theASTNodeType, theASTNodeTypeClass, tokenTypeToASTClassMap
 
Fields inherited from interface org.hibernate.hql.antlr.HqlSqlTokenTypes
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_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
SqlASTFactory(HqlSqlWalker walker)
          Create factory with a specific mapping from token type to Java AST node type.
 
Method Summary
protected  antlr.collections.AST create(Class c)
          Actually instantiate the AST node.
protected  antlr.collections.AST createUsingCtor(antlr.Token token, String className)
           
 Class getASTNodeType(int tokenType)
          Returns the class for a given token type (a.k.a.
 
Methods inherited from class antlr.ASTFactory
addASTChild, create, create, create, create, create, create, create, create, dup, dupList, dupTree, error, getTokenTypeToASTClassMap, make, make, makeASTRoot, setASTNodeClass, setASTNodeClass, setASTNodeType, setTokenTypeASTNodeType, setTokenTypeToASTClassMap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SqlASTFactory

public SqlASTFactory(HqlSqlWalker walker)
Create factory with a specific mapping from token type to Java AST node type. Your subclasses of ASTFactory can override and reuse the map stuff.

Method Detail

getASTNodeType

public Class getASTNodeType(int tokenType)
Returns the class for a given token type (a.k.a. AST node type).

Overrides:
getASTNodeType in class antlr.ASTFactory
Parameters:
tokenType - The token type.
Returns:
Class - The AST node class to instantiate.

createUsingCtor

protected antlr.collections.AST createUsingCtor(antlr.Token token,
                                                String className)
Overrides:
createUsingCtor in class antlr.ASTFactory

create

protected antlr.collections.AST create(Class c)
Actually instantiate the AST node.

Overrides:
create in class antlr.ASTFactory
Parameters:
c - The class to instantiate.
Returns:
The instantiated and initialized node.