com.atlassian.crowd.search.hibernate
Class HQLQueryTranslater

java.lang.Object
  extended by com.atlassian.crowd.search.hibernate.HQLQueryTranslater

public class HQLQueryTranslater
extends java.lang.Object

Translates implementation agnostic Queries into executable Hibernate Query Language code.

Before you think this is an epic fail due the the existence of Hibernate criteria queries (CBQ), criteria queries can't do the join we want with user and user attribute classes without explicitly mapping the join in Hibernate (AFAIK). Experience has shown mapping joins for unbounded collections results in a performance nightmare when mutating the collection.


Field Summary
protected static java.lang.String HQL_APPLICATION_ACTIVE
           
protected static java.lang.String HQL_APPLICATION_NAME
           
protected static java.lang.String HQL_APPLICATION_TYPE
           
protected static java.lang.String HQL_ATTRIBUTE_ALIAS
           
protected static java.lang.String HQL_ATTRIBUTE_NAME
           
protected static java.lang.String HQL_ATTRIBUTE_VALUE
           
protected static java.lang.String HQL_DIRECTORY_ACTIVE
           
protected static java.lang.String HQL_DIRECTORY_ID
           
protected static java.lang.String HQL_DIRECTORY_IMPLEMENTATION_CLASS
           
protected static java.lang.String HQL_DIRECTORY_NAME
           
protected static java.lang.String HQL_DIRECTORY_TYPE
           
protected static java.lang.String HQL_GROUP_ACTIVE
           
protected static java.lang.String HQL_GROUP_NAME
           
protected static java.lang.String HQL_GROUP_TYPE
           
protected static java.lang.String HQL_MEMBERSHIP_ALIAS
           
protected static java.lang.String HQL_MEMBERSHIP_GROUP_TYPE
           
protected static java.lang.String HQL_MEMBERSHIP_TYPE
           
protected static java.lang.String HQL_TOKEN_DIRECTORY_ID
           
protected static java.lang.String HQL_TOKEN_LAST_ACCESSED_DATE
           
protected static java.lang.String HQL_TOKEN_NAME
           
protected static java.lang.String HQL_TOKEN_RANDOM_NUMBER
           
protected static java.lang.String HQL_USER_ACTIVE
           
protected static java.lang.String HQL_USER_DISPLAY_NAME
           
protected static java.lang.String HQL_USER_EMAIL_ADDRESS
           
protected static java.lang.String HQL_USER_FIRST_NAME
           
protected static java.lang.String HQL_USER_LAST_NAME
           
protected static java.lang.String HQL_USER_NAME
           
 
Constructor Summary
HQLQueryTranslater()
           
 
Method Summary
protected  void appendBooleanTermRestrictionAsHQL(HQLQuery hql, Entity entityType, TermRestriction<java.lang.Boolean> restriction)
           
protected  void appendComparableValueAsHQL(HQLQuery hql, TermRestriction restriction)
           
protected  void appendDateTermRestriction(HQLQuery hql, Entity entityType, TermRestriction<? extends java.util.Date> restriction)
           
protected  void appendDirectoryPropertyAsHQL(HQLQuery hql, PropertyRestriction restriction)
           
protected  void appendEntityPropertyAsHQL(HQLQuery hql, Entity entityType, PropertyRestriction restriction)
           
protected  void appendEnumTermRestrictionAsHQL(HQLQuery hql, Entity entityType, TermRestriction<java.lang.Enum> restriction)
           
protected  void appendGroupPropertyAsHQL(HQLQuery hql, PropertyRestriction restriction)
           
protected  void appendGroupTypeRestrictionAsHQL(HQLQuery hql, GroupType groupType)
           
protected  void appendMultiTermRestrictionAsHQL(HQLQuery hql, Entity entityType, MultiTermRestriction multiTermRestriction)
           
protected  void appendPropertyRestrictionAsHQL(HQLQuery hql, Entity entityType, SearchRestriction restriction)
           
protected  void appendQueryAsHQL(EntityQuery query, HQLQuery hql)
           
protected  void appendStringTermRestrictionAsHQL(HQLQuery hql, Entity entityType, TermRestriction<java.lang.String> restriction)
           
protected  void appendStringValueAsHQL(HQLQuery hql, TermRestriction<java.lang.String> restriction)
           
protected  void appendTokenPropertyAsHQL(HQLQuery hql, PropertyRestriction restriction)
           
protected  void appendUserPropertyAsHQL(HQLQuery hql, PropertyRestriction restriction)
           
 HQLQuery asHQL(EntityQuery entityQuery)
           
 HQLQuery asHQL(long directoryID, EntityQuery entityQuery)
           
 HQLQuery asHQL(long directoryID, MembershipQuery query)
           
protected  HQLQuery membershipEntityQueryAsHQL(long directoryID, MembershipQuery query)
           
protected  HQLQuery membershipNamesQueryAsHQL(long directoryID, MembershipQuery query)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HQL_USER_NAME

protected static final java.lang.String HQL_USER_NAME
See Also:
Constant Field Values

HQL_USER_EMAIL_ADDRESS

protected static final java.lang.String HQL_USER_EMAIL_ADDRESS
See Also:
Constant Field Values

HQL_USER_FIRST_NAME

protected static final java.lang.String HQL_USER_FIRST_NAME
See Also:
Constant Field Values

HQL_USER_LAST_NAME

protected static final java.lang.String HQL_USER_LAST_NAME
See Also:
Constant Field Values

HQL_USER_DISPLAY_NAME

protected static final java.lang.String HQL_USER_DISPLAY_NAME
See Also:
Constant Field Values

HQL_USER_ACTIVE

protected static final java.lang.String HQL_USER_ACTIVE
See Also:
Constant Field Values

HQL_GROUP_NAME

protected static final java.lang.String HQL_GROUP_NAME
See Also:
Constant Field Values

HQL_GROUP_ACTIVE

protected static final java.lang.String HQL_GROUP_ACTIVE
See Also:
Constant Field Values

HQL_GROUP_TYPE

protected static final java.lang.String HQL_GROUP_TYPE
See Also:
Constant Field Values

HQL_TOKEN_NAME

protected static final java.lang.String HQL_TOKEN_NAME
See Also:
Constant Field Values

HQL_TOKEN_LAST_ACCESSED_DATE

protected static final java.lang.String HQL_TOKEN_LAST_ACCESSED_DATE
See Also:
Constant Field Values

HQL_TOKEN_DIRECTORY_ID

protected static final java.lang.String HQL_TOKEN_DIRECTORY_ID
See Also:
Constant Field Values

HQL_TOKEN_RANDOM_NUMBER

protected static final java.lang.String HQL_TOKEN_RANDOM_NUMBER
See Also:
Constant Field Values

HQL_DIRECTORY_NAME

protected static final java.lang.String HQL_DIRECTORY_NAME
See Also:
Constant Field Values

HQL_DIRECTORY_ACTIVE

protected static final java.lang.String HQL_DIRECTORY_ACTIVE
See Also:
Constant Field Values

HQL_DIRECTORY_TYPE

protected static final java.lang.String HQL_DIRECTORY_TYPE
See Also:
Constant Field Values

HQL_DIRECTORY_IMPLEMENTATION_CLASS

protected static final java.lang.String HQL_DIRECTORY_IMPLEMENTATION_CLASS
See Also:
Constant Field Values

HQL_APPLICATION_NAME

protected static final java.lang.String HQL_APPLICATION_NAME
See Also:
Constant Field Values

HQL_APPLICATION_ACTIVE

protected static final java.lang.String HQL_APPLICATION_ACTIVE
See Also:
Constant Field Values

HQL_APPLICATION_TYPE

protected static final java.lang.String HQL_APPLICATION_TYPE
See Also:
Constant Field Values

HQL_ATTRIBUTE_NAME

protected static final java.lang.String HQL_ATTRIBUTE_NAME
See Also:
Constant Field Values

HQL_ATTRIBUTE_VALUE

protected static final java.lang.String HQL_ATTRIBUTE_VALUE
See Also:
Constant Field Values

HQL_ATTRIBUTE_ALIAS

protected static final java.lang.String HQL_ATTRIBUTE_ALIAS
See Also:
Constant Field Values

HQL_DIRECTORY_ID

protected static final java.lang.String HQL_DIRECTORY_ID
See Also:
Constant Field Values

HQL_MEMBERSHIP_ALIAS

protected static final java.lang.String HQL_MEMBERSHIP_ALIAS
See Also:
Constant Field Values

HQL_MEMBERSHIP_TYPE

protected static final java.lang.String HQL_MEMBERSHIP_TYPE
See Also:
Constant Field Values

HQL_MEMBERSHIP_GROUP_TYPE

protected static final java.lang.String HQL_MEMBERSHIP_GROUP_TYPE
See Also:
Constant Field Values
Constructor Detail

HQLQueryTranslater

public HQLQueryTranslater()
Method Detail

asHQL

public HQLQuery asHQL(long directoryID,
                      MembershipQuery query)

membershipNamesQueryAsHQL

protected HQLQuery membershipNamesQueryAsHQL(long directoryID,
                                             MembershipQuery query)

membershipEntityQueryAsHQL

protected HQLQuery membershipEntityQueryAsHQL(long directoryID,
                                              MembershipQuery query)

asHQL

public HQLQuery asHQL(EntityQuery entityQuery)

asHQL

public HQLQuery asHQL(long directoryID,
                      EntityQuery entityQuery)

appendQueryAsHQL

protected void appendQueryAsHQL(EntityQuery query,
                                HQLQuery hql)

appendPropertyRestrictionAsHQL

protected void appendPropertyRestrictionAsHQL(HQLQuery hql,
                                              Entity entityType,
                                              SearchRestriction restriction)

appendDateTermRestriction

protected void appendDateTermRestriction(HQLQuery hql,
                                         Entity entityType,
                                         TermRestriction<? extends java.util.Date> restriction)

appendBooleanTermRestrictionAsHQL

protected void appendBooleanTermRestrictionAsHQL(HQLQuery hql,
                                                 Entity entityType,
                                                 TermRestriction<java.lang.Boolean> restriction)

appendEnumTermRestrictionAsHQL

protected void appendEnumTermRestrictionAsHQL(HQLQuery hql,
                                              Entity entityType,
                                              TermRestriction<java.lang.Enum> restriction)

appendMultiTermRestrictionAsHQL

protected void appendMultiTermRestrictionAsHQL(HQLQuery hql,
                                               Entity entityType,
                                               MultiTermRestriction multiTermRestriction)

appendStringTermRestrictionAsHQL

protected void appendStringTermRestrictionAsHQL(HQLQuery hql,
                                                Entity entityType,
                                                TermRestriction<java.lang.String> restriction)

appendEntityPropertyAsHQL

protected void appendEntityPropertyAsHQL(HQLQuery hql,
                                         Entity entityType,
                                         PropertyRestriction restriction)

appendDirectoryPropertyAsHQL

protected void appendDirectoryPropertyAsHQL(HQLQuery hql,
                                            PropertyRestriction restriction)

appendTokenPropertyAsHQL

protected void appendTokenPropertyAsHQL(HQLQuery hql,
                                        PropertyRestriction restriction)

appendGroupTypeRestrictionAsHQL

protected void appendGroupTypeRestrictionAsHQL(HQLQuery hql,
                                               GroupType groupType)

appendGroupPropertyAsHQL

protected void appendGroupPropertyAsHQL(HQLQuery hql,
                                        PropertyRestriction restriction)

appendUserPropertyAsHQL

protected void appendUserPropertyAsHQL(HQLQuery hql,
                                       PropertyRestriction restriction)

appendStringValueAsHQL

protected void appendStringValueAsHQL(HQLQuery hql,
                                      TermRestriction<java.lang.String> restriction)

appendComparableValueAsHQL

protected void appendComparableValueAsHQL(HQLQuery hql,
                                          TermRestriction restriction)


Copyright © 2009 Atlassian Pty Ltd. All Rights Reserved.