org.hibernate.criterion
Class ProjectionList

java.lang.Object
  extended by org.hibernate.criterion.ProjectionList
All Implemented Interfaces:
Serializable, EnhancedProjection, Projection

public class ProjectionList
extends Object
implements EnhancedProjection

Author:
Gavin King
See Also:
Serialized Form

Constructor Summary
protected ProjectionList()
           
 
Method Summary
 ProjectionList add(Projection proj)
           
 ProjectionList add(Projection projection, String alias)
           
 ProjectionList create()
           
 String[] getAliases()
          Get the criteria-level aliases for this projection (ie.
 String[] getColumnAliases(int loc)
          Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery).
 String[] getColumnAliases(int loc, Criteria criteria, CriteriaQuery criteriaQuery)
          Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery).
 String[] getColumnAliases(String alias, int loc)
          Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery) for a particular criteria-level alias.
 String[] getColumnAliases(String alias, int loc, Criteria criteria, CriteriaQuery criteriaQuery)
          Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery) for a particular criteria-level alias.
 int getLength()
           
 Projection getProjection(int i)
           
 Type[] getTypes(Criteria criteria, CriteriaQuery criteriaQuery)
          Types returned by the rendered SQL fragment.
 Type[] getTypes(String alias, Criteria criteria, CriteriaQuery criteriaQuery)
          Get the return types for a particular user-visible alias.
 boolean isGrouped()
          Is this projection fragment (SELECT clause) also part of the GROUP BY
 String toGroupSqlString(Criteria criteria, CriteriaQuery criteriaQuery)
          Render the SQL fragment to be used in the GROUP BY clause
 String toSqlString(Criteria criteria, int loc, CriteriaQuery criteriaQuery)
          Render the SQL fragment to be used in the SELECT clause.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ProjectionList

protected ProjectionList()
Method Detail

create

public ProjectionList create()

add

public ProjectionList add(Projection proj)

add

public ProjectionList add(Projection projection,
                          String alias)

getTypes

public Type[] getTypes(Criteria criteria,
                       CriteriaQuery criteriaQuery)
                throws HibernateException
Description copied from interface: Projection
Types returned by the rendered SQL fragment. In other words what are the types that would represent the values this projection asked to be pulled into the result set?

Specified by:
getTypes in interface Projection
Parameters:
criteria - The local criteria to which this project is attached (for resolution).
criteriaQuery - The overall criteria query instance.
Returns:
The return types.
Throws:
HibernateException - Indicates a problem resolving the types

toSqlString

public String toSqlString(Criteria criteria,
                          int loc,
                          CriteriaQuery criteriaQuery)
                   throws HibernateException
Description copied from interface: Projection
Render the SQL fragment to be used in the SELECT clause.

Specified by:
toSqlString in interface Projection
Parameters:
criteria - The local criteria to which this project is attached (for resolution).
loc - The number of columns rendered in the SELECT clause before this projection. Generally speaking this is useful to ensure uniqueness of the individual columns aliases.
criteriaQuery - The overall criteria query instance.
Returns:
The SQL fragment to plug into the SELECT
Throws:
HibernateException - Indicates a problem performing the rendering

toGroupSqlString

public String toGroupSqlString(Criteria criteria,
                               CriteriaQuery criteriaQuery)
                        throws HibernateException
Description copied from interface: Projection
Render the SQL fragment to be used in the GROUP BY clause

Specified by:
toGroupSqlString in interface Projection
Parameters:
criteria - The local criteria to which this project is attached (for resolution).
criteriaQuery - The overall criteria query instance.
Returns:
The SQL fragment to plug into the GROUP BY
Throws:
HibernateException - Indicates a problem performing the rendering

getColumnAliases

public String[] getColumnAliases(int loc)
Description copied from interface: Projection
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery). Hibernate always uses column aliases to extract data from the JDBC ResultSet, so it is important that these be implemented correctly in order for Hibernate to be able to extract these val;ues correctly.

Specified by:
getColumnAliases in interface Projection
Parameters:
loc - Just as in Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery), represents the number of columns rendered prior to this projection.
Returns:
The columns aliases.

getColumnAliases

public String[] getColumnAliases(int loc,
                                 Criteria criteria,
                                 CriteriaQuery criteriaQuery)
Description copied from interface: EnhancedProjection
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery). Hibernate always uses column aliases to extract data from the JDBC ResultSet, so it is important that these be implemented correctly in order for Hibernate to be able to extract these val;ues correctly.

Specified by:
getColumnAliases in interface EnhancedProjection
Parameters:
loc - Just as in Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery), represents the number of columns rendered prior to this projection.
criteria - The local criteria to which this project is attached (for resolution).
criteriaQuery - The overall criteria query instance.
Returns:
The columns aliases.

getColumnAliases

public String[] getColumnAliases(String alias,
                                 int loc)
Description copied from interface: Projection
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery) for a particular criteria-level alias.

Specified by:
getColumnAliases in interface Projection
Parameters:
alias - The criteria-level alias
loc - Just as in Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery), represents the number of columns rendered prior to this projection.
Returns:
The columns aliases pertaining to a particular criteria-level alias; expected to return null if this projection does not understand this alias.

getColumnAliases

public String[] getColumnAliases(String alias,
                                 int loc,
                                 Criteria criteria,
                                 CriteriaQuery criteriaQuery)
Description copied from interface: EnhancedProjection
Get the SQL column aliases used by this projection for the columns it writes for inclusion into the SELECT clause (Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery) for a particular criteria-level alias.

Specified by:
getColumnAliases in interface EnhancedProjection
Parameters:
alias - The criteria-level alias
loc - Just as in Projection.toSqlString(org.hibernate.Criteria, int, org.hibernate.criterion.CriteriaQuery), represents the number of columns rendered prior to this projection.
criteria - The local criteria to which this project is attached (for resolution).
criteriaQuery - The overall criteria query instance.
Returns:
The columns aliases pertaining to a particular criteria-level alias; expected to return null if this projection does not understand this alias.

getTypes

public Type[] getTypes(String alias,
                       Criteria criteria,
                       CriteriaQuery criteriaQuery)
Description copied from interface: Projection
Get the return types for a particular user-visible alias.

Differs from Projection.getTypes(org.hibernate.Criteria, CriteriaQuery) in that here we are only interested in the types related to the given criteria-level alias.

Specified by:
getTypes in interface Projection
Parameters:
alias - The criteria-level alias for which to find types.
criteria - The local criteria to which this project is attached (for resolution).
criteriaQuery - The overall criteria query instance.
Returns:
The return types; expected to return null if this projection does not understand this alias.

getAliases

public String[] getAliases()
Description copied from interface: Projection
Get the criteria-level aliases for this projection (ie. the ones that will be passed to the ResultTransformer)

Specified by:
getAliases in interface Projection
Returns:
The aliases

getProjection

public Projection getProjection(int i)

getLength

public int getLength()

toString

public String toString()
Overrides:
toString in class Object

isGrouped

public boolean isGrouped()
Description copied from interface: Projection
Is this projection fragment (SELECT clause) also part of the GROUP BY

Specified by:
isGrouped in interface Projection
Returns:
True if the projection is also part of the GROUP BY; false otherwise.


Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.