org.hibernate.hql.ast

Class SqlASTFactory

Implemented Interfaces:
HqlSqlTokenTypes

public class SqlASTFactory
extends 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

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, FILTERS, FILTER_ENTITY, FLOAT_SUFFIX, FROM, FROM_FRAGMENT, FULL, GE, GROUP, GT, HAVING, HEX_DIGIT, IDENT, ID_LETTER, ID_START_LETTER, IMPLIED_FROM, IN, INDEX_OP, INDICES, INNER, INSERT, INTO, IN_LIST, 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 AST
create(Class c)
Actually instantiate the AST node.
protected AST
createUsingCtor(Token token, String className)
Class
getASTNodeType(int tokenType)
Returns the class for a given token type (a.k.a.

Constructor Details

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 Details

create

protected AST create(Class c)
Actually instantiate the AST node.
Parameters:
c - The class to instantiate.
Returns:
The instantiated and initialized node.

createUsingCtor

protected AST createUsingCtor(Token token,
                              String className)

getASTNodeType

public Class getASTNodeType(int tokenType)
Returns the class for a given token type (a.k.a. AST node type).
Parameters:
tokenType - The token type.
Returns:
Class - The AST node class to instantiate.