© 2005 BEA Systems, Inc.

com.beasys.commerce.ebusiness.catalog.service.query
Class QueryHelper

java.lang.Object
  extended bycom.beasys.commerce.ebusiness.catalog.service.query.QueryHelper

public class QueryHelper
extends Object

Helper class for performing Product Catalog queries.


Field Summary
static String DEFAULT_ENTITY_ID_TABLE_NAME
          The default entity identifier table
static String DEFAULT_PROPERTY_BOOLEAN_COLUMN_NAME
          The default boolean property table
static String DEFAULT_PROPERTY_DATETIME_COLUMN_NAME
          The default date/time property table
static String DEFAULT_PROPERTY_FLOAT_COLUMN_NAME
          The default float property table
static String DEFAULT_PROPERTY_ID_TABLE_NAME
          The default property identifier table
static String DEFAULT_PROPERTY_INTEGER_COLUMN_NAME
          The default integer property table
static String DEFAULT_PROPERTY_TEXT_COLUMN_NAME
          The default text property table
static String DEFAULT_PROPERTY_VALUE_TABLE
          The default property table
static String DEFAULT_TABLE_PREFIX
          The default table prefix
 
Constructor Summary
QueryHelper(JdbcCatalogFactory jdbcCatFac, Boolean supportsLikeEscapeClause)
           
 
Method Summary
static List fixKeywords(String[] keywords)
          Fix up an array of keywords by removing nulls and duplicates.
protected  StringBuffer getSearchSQL(boolean showAll, List params, boolean isCategory)
          Get the SQL where clause for the showAll parameter.
protected  StringBuffer getSearchSQL(Expression expr, String prefix, boolean supportsLikeEscapeClause, List params, boolean isCategory)
          Get the SQL where clause for an expression.
protected  StringBuffer getSearchSQL(List keywords, String logical, List params)
          Get the SQL where clause for the keywords.
protected  void getSearchSQL(StringBuffer buf, Criteria c, String prefix, boolean supportsLikeEscapeClause, List params, boolean isCategory)
          Get the SQL where clause for a Criteria.
protected  void getSearchSQL(StringBuffer buf, Expression expr, String prefix, boolean supportsLikeEscapeClause, List params, boolean isCategory)
          Get the SQL where clause for an expression.
protected  void getSearchSQL(StringBuffer buf, Logical l, String prefix, boolean supportsLikeEscapeClause, List params, boolean isCategory)
          Get the SQL where clause for a Criteria.
protected  void getSearchSQL(StringBuffer buf, String prefix, boolean supportsLikeEscapeClause, String column, String scope, String name, String op, Object val, List params, boolean isCategory)
          Get the SQL for searching for an implicit property in a certain WLCS_PROP_* table.
protected  StringBuffer getSearchSQL(String lang, List params, boolean isCategory)
          Get the SQL where clause for the lang parameter.
static String getSQLOperator(String c)
          Return the corresponding SQL operator for the given comparator.
static boolean isLegalSingleValueComparator(String c)
          Determine if a comparator is legal, single-value attribute comparator.
static void main(String[] args)
          Quick unit test of keyword search.
 List search(Connection con, boolean showAll, String lang, Expression expr, String tablePrefix)
          Perform an expression search.
 List search(Connection con, boolean showAll, String lang, List keywords)
          Perform an AND'ed keyword search.
 List search(Connection con, boolean showAll, String lang, List keywords, String logical)
          Perform a keyword search.
 List search(Connection con, boolean showAll, String lang, List keywords, String logical, Expression expr, String tablePrefix, int maxSearchResults)
          Perform a search
 List search(Connection con, boolean showAll, String lang, String logical, Expression expr, String tablePrefix, int maxSearchResults)
          Perform a search
static Object toSQLLike(Object obj, boolean supportsLikeEscapeClause)
          Convert an object, which might be a string, to a SQL like string.
static String toSQLLike(String like, boolean supportsLikeEscapeClause)
          Convert a query LIKE value to a SQL LIKE value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_ENTITY_ID_TABLE_NAME

public static final String DEFAULT_ENTITY_ID_TABLE_NAME
The default entity identifier table

See Also:
Constant Field Values

DEFAULT_PROPERTY_BOOLEAN_COLUMN_NAME

public static final String DEFAULT_PROPERTY_BOOLEAN_COLUMN_NAME
The default boolean property table

See Also:
Constant Field Values

DEFAULT_PROPERTY_DATETIME_COLUMN_NAME

public static final String DEFAULT_PROPERTY_DATETIME_COLUMN_NAME
The default date/time property table

See Also:
Constant Field Values

DEFAULT_PROPERTY_FLOAT_COLUMN_NAME

public static final String DEFAULT_PROPERTY_FLOAT_COLUMN_NAME
The default float property table

See Also:
Constant Field Values

DEFAULT_PROPERTY_ID_TABLE_NAME

public static final String DEFAULT_PROPERTY_ID_TABLE_NAME
The default property identifier table

See Also:
Constant Field Values

DEFAULT_PROPERTY_INTEGER_COLUMN_NAME

public static final String DEFAULT_PROPERTY_INTEGER_COLUMN_NAME
The default integer property table

See Also:
Constant Field Values

DEFAULT_PROPERTY_TEXT_COLUMN_NAME

public static final String DEFAULT_PROPERTY_TEXT_COLUMN_NAME
The default text property table

See Also:
Constant Field Values

DEFAULT_PROPERTY_VALUE_TABLE

public static final String DEFAULT_PROPERTY_VALUE_TABLE
The default property table

See Also:
Constant Field Values

DEFAULT_TABLE_PREFIX

public static final String DEFAULT_TABLE_PREFIX
The default table prefix

See Also:
Constant Field Values
Constructor Detail

QueryHelper

public QueryHelper(JdbcCatalogFactory jdbcCatFac,
                   Boolean supportsLikeEscapeClause)
Method Detail

fixKeywords

public static List fixKeywords(String[] keywords)
Fix up an array of keywords by removing nulls and duplicates.

Parameters:
keywords - the array of keywords.
Returns:
the cleaned-up list of keywords.

getSearchSQL

protected StringBuffer getSearchSQL(boolean showAll,
                                    List params,
                                    boolean isCategory)
Get the SQL where clause for the showAll parameter.

Parameters:
showAll - whether to show invisible items (true), or not (false).
params - the list of prepared statement params to add to.
Returns:
the SQL where clause, or null if there shouldn't be one.

getSearchSQL

protected StringBuffer getSearchSQL(Expression expr,
                                    String prefix,
                                    boolean supportsLikeEscapeClause,
                                    List params,
                                    boolean isCategory)
                             throws CatalogException
Get the SQL where clause for an expression.

Parameters:
expr - the expression (already normalized, null for none).
prefix - the table prefix for the ConfigurableEntity tables for implicit properties.
supportsLikeEscapeClause - tells if the SQL statement can use the LIKE ESCAPE clause.
params - the list of prepared statement params to add to.
Returns:
the SQL where clause, or null if there shouldn't be one.
Throws:
CatalogException

getSearchSQL

protected StringBuffer getSearchSQL(List keywords,
                                    String logical,
                                    List params)
Get the SQL where clause for the keywords.

Parameters:
keywords - the list of keywords (no nulls, no duplicates, null for none).
logical - TypesHelper.AND or TypesHelper.OR (for keywords).
params - the list of prepared statement params to add to.
Returns:
the SQL where clause, or null if there shouldn't be one.

getSearchSQL

protected void getSearchSQL(StringBuffer buf,
                            Criteria c,
                            String prefix,
                            boolean supportsLikeEscapeClause,
                            List params,
                            boolean isCategory)
                     throws CatalogException
Get the SQL where clause for a Criteria.

Parameters:
buf - the buffer to write into.
c - the Criteria.
prefix - the table prefix for the ConfigurableEntity tables for implicit properties.
supportsLikeEscapeClause - tells if the SQL statement can use the LIKE ESCAPE clause.
params - the list of prepared statement params to add to.
Throws:
CatalogException

getSearchSQL

protected void getSearchSQL(StringBuffer buf,
                            Expression expr,
                            String prefix,
                            boolean supportsLikeEscapeClause,
                            List params,
                            boolean isCategory)
                     throws CatalogException
Get the SQL where clause for an expression.

Parameters:
buf - the buffer to write into.
expr - the expression (already normalized, null for none).
prefix - the table prefix for the ConfigurableEntity tables for implicit properties.
supportsLikeEscapeClause - tells if the SQL statement can use the LIKE ESCAPE clause.
params - the list of prepared statement params to add to.
Throws:
CatalogException

getSearchSQL

protected void getSearchSQL(StringBuffer buf,
                            Logical l,
                            String prefix,
                            boolean supportsLikeEscapeClause,
                            List params,
                            boolean isCategory)
                     throws CatalogException
Get the SQL where clause for a Criteria.

Parameters:
buf - the buffer to write into.
l - the Logical.
prefix - the table prefix for the ConfigurableEntity tables for implicit properties.
supportsLikeEscapeClause - tells if the SQL statement can use the LIKE ESCAPE clause.
params - the list of prepared statement params to add to.
Throws:
CatalogException

getSearchSQL

protected void getSearchSQL(StringBuffer buf,
                            String prefix,
                            boolean supportsLikeEscapeClause,
                            String column,
                            String scope,
                            String name,
                            String op,
                            Object val,
                            List params,
                            boolean isCategory)
Get the SQL for searching for an implicit property in a certain WLCS_PROP_* table.

Parameters:
buf - the buffer to write into.
prefix - the table prefix.
supportsLikeEscapeClause - tells if the SQL statement can use the LIKE ESCAPE clause.
scope - the property scope name (null for any scope).
name - the property name.
op - the operator.
val - the value to match
params - the list of prepared statement params to add to.

getSearchSQL

protected StringBuffer getSearchSQL(String lang,
                                    List params,
                                    boolean isCategory)
Get the SQL where clause for the lang parameter.

Parameters:
params - the list of prepared statement params to add to.
Returns:
the SQL where clause, or null if there shouldn't be one.

getSQLOperator

public static String getSQLOperator(String c)
Return the corresponding SQL operator for the given comparator.


isLegalSingleValueComparator

public static boolean isLegalSingleValueComparator(String c)
Determine if a comparator is legal, single-value attribute comparator.


main

public static void main(String[] args)
                 throws Exception
Quick unit test of keyword search.

Throws:
Exception

search

public List search(Connection con,
                   boolean showAll,
                   String lang,
                   Expression expr,
                   String tablePrefix)
            throws CatalogException
Perform an expression search.

Parameters:
con - the database connection to use.
showAll - true to show invisible items, false to not.
lang - the language to match on (null for any).
expr - the normalized expression to use.
tablePrefix - the table prefix for the ConfigurableEntity tables for implicit properties.
Returns:
the list of ProductItemKeys of the items that match.
Throws:
CatalogException

search

public List search(Connection con,
                   boolean showAll,
                   String lang,
                   List keywords)
            throws CatalogException
Perform an AND'ed keyword search.

Parameters:
con - the database connection to use.
showAll - true to show invisible items, false to not.
lang - the language to match on (null for any).
keywords - the list of keywords (no nulls, no duplicates).
Returns:
the list of ProductItemKeys of the items that match.
Throws:
CatalogException

search

public List search(Connection con,
                   boolean showAll,
                   String lang,
                   List keywords,
                   String logical)
            throws CatalogException
Perform a keyword search.

Parameters:
con - the database connection to use.
showAll - true to show invisible items, false to not.
lang - the language to match on (null for any).
keywords - the list of keywords (no nulls, no duplicates).
logical - TypesHelper.AND or TypesHelper.OR.
Returns:
the list of ProductItemKeys of the items that match.
Throws:
CatalogException

search

public List search(Connection con,
                   boolean showAll,
                   String lang,
                   List keywords,
                   String logical,
                   Expression expr,
                   String tablePrefix,
                   int maxSearchResults)
            throws CatalogException
Perform a search

Parameters:
con - the database connection to use.
showAll - true to show invisible items, false to not.
lang - the language to match on (null for any).
keywords - the list of keywords (no nulls, no duplicates, null for none).
logical - TypesHelper.AND or TypesHelper.OR (for keywords).
expr - the query expression to use (already normalized, null for none).
tablePrefix - the table prefix for the ConfigurableEntity tables for implicit properties.
Returns:
the list of ProductItemKeys of the items that match.
Throws:
CatalogException
See Also:
TypesHelper

search

public List search(Connection con,
                   boolean showAll,
                   String lang,
                   String logical,
                   Expression expr,
                   String tablePrefix,
                   int maxSearchResults)
            throws CatalogException
Perform a search

Parameters:
con - the database connection to use.
showAll - true to show invisible items, false to not.
lang - the language to match on (null for any).
logical - TypesHelper.AND or TypesHelper.OR (for keywords).
expr - the query expression to use (already normalized, null for none).
tablePrefix - the table prefix for the ConfigurableEntity tables for implicit properties.
Returns:
the list of ProductItemKeys of the items that match.
Throws:
CatalogException
See Also:
TypesHelper

toSQLLike

public static Object toSQLLike(Object obj,
                               boolean supportsLikeEscapeClause)
Convert an object, which might be a string, to a SQL like string.


toSQLLike

public static String toSQLLike(String like,
                               boolean supportsLikeEscapeClause)
Convert a query LIKE value to a SQL LIKE value.


© 2005 BEA Systems, Inc.

Copyright © 2005 BEA Systems, Inc. All Rights Reserved