fri.util.database.jpa.tree.util
Class QueryBuilderUtil

java.lang.Object
  extended by fri.util.database.jpa.tree.util.QueryBuilderUtil

public final class QueryBuilderUtil
extends java.lang.Object

Utilities for editing JPQL queries.

Author:
Fritz Ritzberger, 21.10.2012

Method Summary
static boolean appendCriteria(boolean nullIsACriterion, java.lang.StringBuilder queryText, java.lang.String tableAlias, java.util.List<java.lang.Object> parameterValues, java.util.Map<java.lang.String,java.lang.Object> criteria, boolean whereWasAppended)
          Appends all criteria to query, ANDing them, starting with WHERE or AND (depending on whereWasAppended).
static boolean appendCriteria(boolean nullIsACriterion, java.lang.StringBuilder queryText, java.lang.String tableAlias, java.util.List<java.lang.Object> parameterValues, java.util.Map<java.lang.String,java.lang.Object> criteria, boolean whereWasAppended, boolean startWithWhereOrAnd)
          Appends all criteria to query, ANDing them.
static void appendValidityConditions(java.lang.String tableAlias, java.lang.String validFromPropertyName, java.util.Date validFrom, java.lang.String validToPropertyName, java.util.Date validTo, java.lang.StringBuilder queryText, java.util.List<java.lang.Object> parameters)
          Appends "(validFrom is null or validFrom <= ?) and (validTo is null or validTo > ?)".
static java.lang.String buildAliasedPropertyName(java.lang.String tableAlias, java.lang.String propertyName)
           
static java.lang.String buildIndexedPlaceHolder(java.util.List<java.lang.Object> parameters)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

appendCriteria

public static boolean appendCriteria(boolean nullIsACriterion,
                                     java.lang.StringBuilder queryText,
                                     java.lang.String tableAlias,
                                     java.util.List<java.lang.Object> parameterValues,
                                     java.util.Map<java.lang.String,java.lang.Object> criteria,
                                     boolean whereWasAppended)
Appends all criteria to query, ANDing them, starting with WHERE or AND (depending on whereWasAppended).

Parameters:
nullIsACriterion - true when null values in Map should be rendered as "and xxx is null".
queryText - the query text to populate with criteria.
parameterValues - the positional query parameters to fill.
criteria - the query criteria, key = property name, value = value to be queried.
whereWasAppended - true when the incoming query has a "WHERE" already appended.
Returns:
true when a WHERE was appended to query.

appendCriteria

public static boolean appendCriteria(boolean nullIsACriterion,
                                     java.lang.StringBuilder queryText,
                                     java.lang.String tableAlias,
                                     java.util.List<java.lang.Object> parameterValues,
                                     java.util.Map<java.lang.String,java.lang.Object> criteria,
                                     boolean whereWasAppended,
                                     boolean startWithWhereOrAnd)
Appends all criteria to query, ANDing them.

Parameters:
nullIsACriterion - true when null values in Map should be rendered as "and xxx is null".
queryText - the query text to populate with criteria.
parameterValues - the positional query parameters to fill.
criteria - the query criteria, key = property name, value = value to be queried.
whereWasAppended - true when the incoming query has a "WHERE" already appended.
tableAlias - the table-alias in query to prefix the property name: e.g. "p" to achieve "p.xxx".
startWithWhereOrAnd - when true, an AND or WHERE is appended at start, depending on whereWasAppended.
Returns:
true when a WHERE was appended to query.

appendValidityConditions

public static void appendValidityConditions(java.lang.String tableAlias,
                                            java.lang.String validFromPropertyName,
                                            java.util.Date validFrom,
                                            java.lang.String validToPropertyName,
                                            java.util.Date validTo,
                                            java.lang.StringBuilder queryText,
                                            java.util.List<java.lang.Object> parameters)
Appends "(validFrom is null or validFrom <= ?) and (validTo is null or validTo > ?)".

Parameters:
tableAlias - the alias to use for query text, can be null.
validFromPropertyName - the name of the property that represents the temporal valid-from date, can be null.
validFrom - the value for valid-from property, can be null, then "now" is used.
validToPropertyName - the name of the property that represents the temporal valid-to date, can NOT be null.
validTo - the value for valid-to property, can be null, then "now" is used.
queryText - the query to append property conditions to.
parameters - the query parameters to append property values to.

buildAliasedPropertyName

public static java.lang.String buildAliasedPropertyName(java.lang.String tableAlias,
                                                        java.lang.String propertyName)
Returns:
"tableAlias.propertyName" when alias is not null, else "propertyName".

buildIndexedPlaceHolder

public static java.lang.String buildIndexedPlaceHolder(java.util.List<java.lang.Object> parameters)
Returns:
"?5" when parameters.size() == 4.