org.hibernate.hql.ast
Class QueryTranslatorImpl

java.lang.Object
  extended byorg.hibernate.hql.ast.QueryTranslatorImpl
All Implemented Interfaces:
FilterTranslator, QueryTranslator

public class QueryTranslatorImpl
extends Object
implements FilterTranslator

A QueryTranslator that uses an AST based parser.
User: josh
Date: Dec 31, 2003
Time: 7:50:35 AM

Author:
Joshua Davis (pgmjsd@sourceforge.net)

Field Summary
 
Fields inherited from interface org.hibernate.hql.QueryTranslator
ERROR_CANNOT_DETERMINE_TYPE, ERROR_CANNOT_FETCH_WITH_ITERATE, ERROR_CANNOT_FORMAT_LITERAL, ERROR_NAMED_PARAMETER_DOES_NOT_APPEAR
 
Constructor Summary
QueryTranslatorImpl(String query, Map enabledFilters, SessionFactoryImplementor factory)
          Creates a new AST-based query translator.
 
Method Summary
 void compile(Map replacements, boolean shallow)
          Compile a "normal" query.
 void compile(String collectionRole, Map replacements, boolean shallow)
          Compile a filter.
 int executeUpdate(QueryParameters queryParameters, SessionImplementor session)
          Perform a bulk update/delete operation given the underlying query defintion.
 String[][] getColumnNames()
          Returns the column names in the generated SQL.
 Map getEnabledFilters()
          Returns the filters enabled for this query translator.
 int[] getNamedParameterLocs(String name)
          Returns the locations of the specified named parameter in the SQL.
 Set getQuerySpaces()
          Returns the set of query spaces (table names) that the query referrs to.
 String getQueryString()
          Returns the HQL string processed by the translator.
 String[] getReturnAliases()
          Returns an array of HQL aliases
 Type[] getReturnTypes()
          Types of the return values of an iterate() style query.
 String getSQLString()
          The SQL query string to be called; implemented by all subclasses
 Iterator iterate(QueryParameters queryParameters, SessionImplementor session)
          Return the query results as an iterator
 List list(SessionImplementor session, QueryParameters queryParameters)
          Perform a list operation given the underlying query definition.
 ScrollableResults scroll(QueryParameters queryParameters, SessionImplementor session)
          Return the query results, as an instance of ScrollableResults
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

QueryTranslatorImpl

public QueryTranslatorImpl(String query,
                           Map enabledFilters,
                           SessionFactoryImplementor factory)
Creates a new AST-based query translator.

Parameters:
query - The HQL query string.
enabledFilters - Any filters currently enabled for the session.
factory - The session factory constructing this translator instance.
Method Detail

compile

public void compile(Map replacements,
                    boolean shallow)
             throws QueryException,
                    MappingException
Compile a "normal" query. This method may be called multiple times. Subsequent invocations are no-ops.

Specified by:
compile in interface QueryTranslator
Parameters:
replacements - Defined query substitutions.
shallow - Does this represent a shallow (scalar or entity-id) select?
Throws:
QueryException - There was a problem parsing the query string.
MappingException - There was a problem querying defined mappings.

compile

public void compile(String collectionRole,
                    Map replacements,
                    boolean shallow)
             throws QueryException,
                    MappingException
Compile a filter. This method may be called multiple times. Subsequent invocations are no-ops.

Specified by:
compile in interface FilterTranslator
Parameters:
collectionRole - the role name of the collection used as the basis for the filter.
replacements - Defined query substitutions.
shallow - Does this represent a shallow (scalar or entity-id) select?
Throws:
QueryException - There was a problem parsing the query string.
MappingException - There was a problem querying defined mappings.

getReturnTypes

public Type[] getReturnTypes()
Types of the return values of an iterate() style query.

Specified by:
getReturnTypes in interface QueryTranslator
Returns:
an array of Types.

getReturnAliases

public String[] getReturnAliases()
Description copied from interface: QueryTranslator
Returns an array of HQL aliases

Specified by:
getReturnAliases in interface QueryTranslator

getColumnNames

public String[][] getColumnNames()
Description copied from interface: QueryTranslator
Returns the column names in the generated SQL.

Specified by:
getColumnNames in interface QueryTranslator
Returns:
the column names in the generated SQL.

getQuerySpaces

public Set getQuerySpaces()
Description copied from interface: QueryTranslator
Returns the set of query spaces (table names) that the query referrs to.

Specified by:
getQuerySpaces in interface QueryTranslator
Returns:
A set of query spaces (table names).

list

public List list(SessionImplementor session,
                 QueryParameters queryParameters)
          throws HibernateException
Description copied from interface: QueryTranslator
Perform a list operation given the underlying query definition.

Specified by:
list in interface QueryTranslator
Parameters:
session - The session owning this query.
queryParameters - The query bind parameters.
Returns:
The query list results.
Throws:
HibernateException

iterate

public Iterator iterate(QueryParameters queryParameters,
                        SessionImplementor session)
                 throws HibernateException
Return the query results as an iterator

Specified by:
iterate in interface QueryTranslator
Parameters:
queryParameters - The query bind parameters.
session - The session owning this query.
Returns:
An iterator over the query results.
Throws:
HibernateException

scroll

public ScrollableResults scroll(QueryParameters queryParameters,
                                SessionImplementor session)
                         throws HibernateException
Return the query results, as an instance of ScrollableResults

Specified by:
scroll in interface QueryTranslator
Parameters:
queryParameters - The query bind parameters.
session - The session owning this query.
Returns:
The ScrollableResults wrapper around the query results.
Throws:
HibernateException

executeUpdate

public int executeUpdate(QueryParameters queryParameters,
                         SessionImplementor session)
                  throws HibernateException
Description copied from interface: QueryTranslator
Perform a bulk update/delete operation given the underlying query defintion.

Specified by:
executeUpdate in interface QueryTranslator
Parameters:
queryParameters - The query bind parameters.
session - The session owning this query.
Returns:
The number of entities updated or deleted.
Throws:
HibernateException

getSQLString

public String getSQLString()
The SQL query string to be called; implemented by all subclasses

Specified by:
getSQLString in interface QueryTranslator
Returns:
the SQL string generated by the translator.

getQueryString

public String getQueryString()
Description copied from interface: QueryTranslator
Returns the HQL string processed by the translator.

Specified by:
getQueryString in interface QueryTranslator
Returns:
the HQL string processed by the translator.

getEnabledFilters

public Map getEnabledFilters()
Description copied from interface: QueryTranslator
Returns the filters enabled for this query translator.

Specified by:
getEnabledFilters in interface QueryTranslator
Returns:
Filters enabled for this query execution.

getNamedParameterLocs

public int[] getNamedParameterLocs(String name)
Description copied from interface: QueryTranslator
Returns the locations of the specified named parameter in the SQL.

Specified by:
getNamedParameterLocs in interface QueryTranslator
Parameters:
name - The name of the named parameter.
Returns:
the locations of the specified named parameter in the SQL.