org.araneaframework.backend.list.helper
Class ListSqlHelper

java.lang.Object
  extended byorg.araneaframework.backend.list.helper.BaseListSqlHelper
      extended byorg.araneaframework.backend.list.helper.ListSqlHelper
Direct Known Subclasses:
HSqlListSqlHelper, OracleListSqlHelper, PostgreListSqlHelper

public abstract class ListSqlHelper
extends BaseListSqlHelper

This class provides a standard SQL based implementation of the list. It takes care of the filtering, ordering and returning data to the web components.

Author:
Jevgeni Kabanov (ekabanov at araneaframework dot org), Rein Raudjärv
See Also:
BaseListSqlHelper

Nested Class Summary
 
Nested classes inherited from class org.araneaframework.backend.list.helper.BaseListSqlHelper
BaseListSqlHelper.BeanResultReader, BaseListSqlHelper.CountSqlCallback, BaseListSqlHelper.ItemRangeSqlCallback, BaseListSqlHelper.ListItemsDataCallback
 
Field Summary
protected  ConverterBasedColumnReader converterBasedColumnReader
           
protected static org.apache.commons.logging.Log log
           
protected  MappingNamingStrategyAndFields mappingNamingStrategyAndFields
           
protected  PrefixMapNamingStrategy prefixMapNamingStrategy
           
protected  StandardFields standardFields
           
protected  StandardValueConverter standardValueConverter
           
 
Fields inherited from class org.araneaframework.backend.list.helper.BaseListSqlHelper
DEFAULT_RANGE_START, ds, fields, filterExpr, filterSqlExpr, itemRangeCount, itemRangeStart, namingStrategy, orderExpr, orderSqlExpr, resultSetColumnReader, valueConverter, variableResolver
 
Constructor Summary
ListSqlHelper()
          Creates ListSqlHelper without initializing any fields.
ListSqlHelper(DataSource dataSource)
          Creates ListSqlHelper and provides it with the DataSource.
ListSqlHelper(DataSource dataSource, ListQuery query)
          Creates ListSqlHelper initializing the appropriate fields and providing it with the DataSource.
ListSqlHelper(ListQuery query)
          Creates ListSqlHelper initializing the appropriate fields.
 
Method Summary
 void addDatabaseFieldConverter(String valueName, Converter converter)
          Adds a converter for a filter/order expression value.
 void addDatabaseFieldMapping(String fieldName, String columnName)
          Adds a field name to database column name mapping.
 void addDatabaseFieldMapping(String fieldName, String columnName, String columnAlias)
          Adds a field name to database column name and column alias mapping.
 void addFields(Fields newFields)
          Add additional "set" of fields.
 void addMapping(String fieldName, String columnName)
          Adds a field name to database column name.
 void addMapping(String fieldName, String columnName, String columnAlias)
          Adds a field name to database column name and column alias mapping.
 void addNamingStrategy(NamingStrategy namingStrategy)
          Add additional naming strategy.
protected  void addNamingStrategy(NamingStrategy newNamingStrategy, boolean first)
           
 void addNamingStrategyAsFirst(NamingStrategy namingStrategy)
          Add additional naming strategy.
 void addResultSetDeconverterForBeanField(String beanField, Converter converter)
          Adds a deconverter for ResultSet.
 void addResultSetDeconverterForColumn(String columnName, Converter converter)
          Adds a deconverter for ResultSet.
 void addResultSetMapping(String fieldName, String columnAlias)
          Adds a field name to database column alias mapping.
 ConverterBasedColumnReader getConverterBasedColumnReader()
           
 MappingNamingStrategyAndFields getMappingNamingStrategyAndFields()
           
 PrefixMapNamingStrategy getPrefixMapNamingStrategy()
           
 StandardFields getStandardFields()
           
 StandardValueConverter getStandardValueConverter()
           
protected  void init()
           
 void setConverterBasedColumnReader(ConverterBasedColumnReader converterBasedColumnReader)
           
 void setMappingNamingStrategyAndFields(MappingNamingStrategyAndFields mappingNamingStrategyAndFields)
           
 void setPrefixMapNamingStrategy(PrefixMapNamingStrategy prefixMapNamingStrategy)
           
 void setStandardFields(StandardFields standardFields)
           
 void setStandardValueConverter(StandardValueConverter standardValueConverter)
           
 
Methods inherited from class org.araneaframework.backend.list.helper.BaseListSqlHelper
addNullParam, addStatementParam, addStatementParams, createBeanResultReader, createExpressionBuilderResolver, createFilterSqlExpressionBuilder, createOrderSqlExpressionBuilder, createQueryFailedException, execute, execute, execute, executeCountSql, executeItemRangeSql, executeItemRangeSql, getCountSqlCallback, getCountSqlStatement, getDatabaseFields, getDatabaseFilter, getDatabaseFilterParams, getDatabaseFilterWith, getDatabaseOrder, getDatabaseOrderParams, getDatabaseOrderWith, getFields, getFieldsSqlExpression, getFilterSqlExpression, getItemRangeSqlCallback, getListItemsDataCallback, getNamingStrategy, getOrderSqlExpression, getRangeSqlStatement, getResultSetColumnReader, getValueConverter, setCountSqlQuery, setDataSource, setFields, setFilterExpression, setItemRangeCount, setItemRangeStart, setListQuery, setNamingStrategy, setOrderExpression, setResultSetColumnReader, setSimpleSqlQuery, setSimpleSqlQuery, setSimpleSqlQuery, setSqlQuery, setValueConverter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static final org.apache.commons.logging.Log log

standardFields

protected StandardFields standardFields

mappingNamingStrategyAndFields

protected MappingNamingStrategyAndFields mappingNamingStrategyAndFields

prefixMapNamingStrategy

protected PrefixMapNamingStrategy prefixMapNamingStrategy

standardValueConverter

protected StandardValueConverter standardValueConverter

converterBasedColumnReader

protected ConverterBasedColumnReader converterBasedColumnReader
Constructor Detail

ListSqlHelper

public ListSqlHelper()
Creates ListSqlHelper without initializing any fields.


ListSqlHelper

public ListSqlHelper(DataSource dataSource)
Creates ListSqlHelper and provides it with the DataSource.


ListSqlHelper

public ListSqlHelper(ListQuery query)
Creates ListSqlHelper initializing the appropriate fields.


ListSqlHelper

public ListSqlHelper(DataSource dataSource,
                     ListQuery query)
Creates ListSqlHelper initializing the appropriate fields and providing it with the DataSource.

Method Detail

init

protected void init()
Overrides:
init in class BaseListSqlHelper

addFields

public void addFields(Fields newFields)
Add additional "set" of fields.

See Also:
Fields

addNamingStrategy

public void addNamingStrategy(NamingStrategy namingStrategy)
Add additional naming strategy.

The given namingStrategy is added as last in the context of OrNamingStrategy.

See Also:
NamingStrategy

addNamingStrategyAsFirst

public void addNamingStrategyAsFirst(NamingStrategy namingStrategy)
Add additional naming strategy.

The given namingStrategy is added as first in the context of OrNamingStrategy.

See Also:
NamingStrategy

addNamingStrategy

protected void addNamingStrategy(NamingStrategy newNamingStrategy,
                                 boolean first)

setStandardFields

public void setStandardFields(StandardFields standardFields)

getStandardFields

public StandardFields getStandardFields()
Returns:
standard implementation of list of fields.

setMappingNamingStrategyAndFields

public void setMappingNamingStrategyAndFields(MappingNamingStrategyAndFields mappingNamingStrategyAndFields)

getMappingNamingStrategyAndFields

public MappingNamingStrategyAndFields getMappingNamingStrategyAndFields()

setPrefixMapNamingStrategy

public void setPrefixMapNamingStrategy(PrefixMapNamingStrategy prefixMapNamingStrategy)

getPrefixMapNamingStrategy

public PrefixMapNamingStrategy getPrefixMapNamingStrategy()

setStandardValueConverter

public void setStandardValueConverter(StandardValueConverter standardValueConverter)

getStandardValueConverter

public StandardValueConverter getStandardValueConverter()

setConverterBasedColumnReader

public void setConverterBasedColumnReader(ConverterBasedColumnReader converterBasedColumnReader)

getConverterBasedColumnReader

public ConverterBasedColumnReader getConverterBasedColumnReader()

addDatabaseFieldConverter

public void addDatabaseFieldConverter(String valueName,
                                      Converter converter)
Adds a converter for a filter/order expression value. The converter is used by auomatic SQL query creation according to the filter/order expressions.

Parameters:
valueName - filter/order expression value name.
converter - converter that is used by convert() method.
See Also:
addResultSetDeconverterForBeanField(String, Converter), addResultSetDeconverterForColumn(String, Converter)

addResultSetDeconverterForBeanField

public void addResultSetDeconverterForBeanField(String beanField,
                                                Converter converter)
Adds a deconverter for ResultSet. The converter is used by BaseListSqlHelper.BeanResultReader to reverseConvert() values from ResultSet into bean field format.

Parameters:
beanField - Bean field name.
converter - converter that is used by reverseConvert() method.
See Also:
addDatabaseFieldConverter(String, Converter), addResultSetDeconverterForColumn(String, Converter), BaseListSqlHelper.BeanResultReader

addResultSetDeconverterForColumn

public void addResultSetDeconverterForColumn(String columnName,
                                             Converter converter)
Adds a deconverter for ResultSet. The converter is used by BaseListSqlHelper.BeanResultReader to reverseConvert() values from ResultSet into bean field format.

Parameters:
columnName - ResultSet column name.
converter - converter that is used by reverseConvert() method.
See Also:
addDatabaseFieldConverter(String, Converter), addResultSetDeconverterForBeanField(String, Converter), BaseListSqlHelper.BeanResultReader

addDatabaseFieldMapping

public void addDatabaseFieldMapping(String fieldName,
                                    String columnName,
                                    String columnAlias)
Adds a field name to database column name and column alias mapping.

A given field is listed in the SELECT but is not read from the ResultSet.

Parameters:
fieldName - field name.
columnName - database column name.
columnAlias - database column alias.
See Also:
addMapping(String, String, String), addMapping(String, String), addDatabaseFieldMapping(String, String), addResultSetMapping(String, String)

addDatabaseFieldMapping

public void addDatabaseFieldMapping(String fieldName,
                                    String columnName)
Adds a field name to database column name mapping.

A given field is listed in the SELECT but is not read from the ResultSet.

The corresponding column alias is generated automatically.

Parameters:
fieldName - field name.
columnName - database column name.
See Also:
addMapping(String, String, String), addMapping(String, String), addDatabaseFieldMapping(String, String, String), addResultSetMapping(String, String)

addResultSetMapping

public void addResultSetMapping(String fieldName,
                                String columnAlias)
Adds a field name to database column alias mapping.

A given field is not listed in the SELECT but is read from the ResultSet.

Parameters:
fieldName - field name.
columnAlias - database column name in the result set.
See Also:
addMapping(String, String, String), addMapping(String, String), addDatabaseFieldMapping(String, String, String), addDatabaseFieldMapping(String, String)

addMapping

public void addMapping(String fieldName,
                       String columnName,
                       String columnAlias)
Adds a field name to database column name and column alias mapping.

A given field is listed in the SELECT and is read from the ResultSet.

Parameters:
fieldName - field name.
columnName - database column name.
columnAlias - database column alias.
See Also:
addMapping(String, String), addDatabaseFieldMapping(String, String, String), addDatabaseFieldMapping(String, String), addResultSetMapping(String, String)

addMapping

public void addMapping(String fieldName,
                       String columnName)
Adds a field name to database column name.

A given field is listed in the SELECT and is read from the ResultSet.

The corresponding column alias is generated automatically.

Parameters:
fieldName - field name.
columnName - database column name.
See Also:
addMapping(String, String, String), addDatabaseFieldMapping(String, String, String), addDatabaseFieldMapping(String, String), addResultSetMapping(String, String)