org.hibernate.hql.ast.util
Class JoinProcessor

java.lang.Object
  extended by org.hibernate.hql.ast.util.JoinProcessor
All Implemented Interfaces:
SqlTokenTypes

public class JoinProcessor
extends Object
implements SqlTokenTypes

Performs the post-processing of the join information gathered during semantic analysis. The join generating classes are complex, this encapsulates some of the JoinSequence-related code.

Author:
Joshua Davis

Field Summary
 
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
JoinProcessor(antlr.ASTFactory astFactory, QueryTranslatorImpl queryTranslatorImpl)
          Constructs a new JoinProcessor.
 
Method Summary
 void processJoins(QueryNode query, boolean inSubquery)
           
static int toHibernateJoinType(int astJoinType)
          Translates an AST join type (i.e., the token type) into a JoinFragment.XXX join type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JoinProcessor

public JoinProcessor(antlr.ASTFactory astFactory,
                     QueryTranslatorImpl queryTranslatorImpl)
Constructs a new JoinProcessor.

Parameters:
astFactory - The factory for AST node creation.
queryTranslatorImpl - The query translator.
Method Detail

toHibernateJoinType

public static int toHibernateJoinType(int astJoinType)
Translates an AST join type (i.e., the token type) into a JoinFragment.XXX join type.

Parameters:
astJoinType - The AST join type (from HqlSqlTokenTypes or SqlTokenTypes)
Returns:
a JoinFragment.XXX join type.
See Also:
JoinFragment, SqlTokenTypes

processJoins

public void processJoins(QueryNode query,
                         boolean inSubquery)