se.unlogic.standardutils.dao
Class AnnotatedDAO<T>

java.lang.Object
  extended by se.unlogic.standardutils.dao.AnnotatedDAO<T>

public class AnnotatedDAO<T>
extends Object


Field Summary
protected  ArrayList<Field> autoAddRelations
           
protected  ArrayList<Field> autoGetRelations
           
protected  ArrayList<Field> autoUpdateRelations
           
protected  Class<T> beanClass
           
protected  List<BeanStringPopulator<?>> beanStringPopulators
           
protected  String checkIfExistsSQL
           
protected  ArrayList<ColumnKeyCollector<T>> columnKeyCollectors
           
protected  HashMap<Field,Column<T,?>> columnMap
           
protected  TreeMap<OrderBy,Column<T,?>> columnOrderMap
           
protected  DataSource dataSource
           
protected  String defaultSortingCriteria
           
protected  String deleteByFieldSQL
           
protected  String deleteSQL
           
protected  String getSQL
           
protected  String insertSQL
           
protected  HashMap<Field,ManyToManyRelation<T,?>> manyToManyRelations
           
protected  HashMap<Field,ManyToOneRelation<T,?,?>> manyToOneRelationKeys
           
protected  HashMap<Field,ManyToOneRelation<T,?,?>> manyToOneRelations
           
protected  HashMap<Field,OneToManyRelation<T,?>> oneToManyRelations
           
protected  AnnotatedResultSetPopulator<T> populator
           
protected  List<QueryParameterPopulator<?>> queryParameterPopulators
           
protected  ArrayList<Column<T,?>> simpleColumns
           
protected  ArrayList<Column<T,?>> simpleKeys
           
protected  String tableName
           
protected  String updateSQL
           
 
Constructor Summary
AnnotatedDAO(DataSource dataSource, Class<T> beanClass, AnnotatedDAOFactory daoFactory)
           
AnnotatedDAO(DataSource dataSource, Class<T> beanClass, AnnotatedDAOFactory daoFactory, AnnotatedResultSetPopulator<T> populator, List<? extends QueryParameterPopulator<?>> queryParameterPopulators, List<? extends BeanStringPopulator<?>> typePopulators)
           
AnnotatedDAO(DataSource dataSource, Class<T> beanClass, AnnotatedDAOFactory daoFactory, AnnotatedResultSetPopulator<T> populator, QueryParameterPopulator<?>... queryParameterPopulators)
           
AnnotatedDAO(DataSource dataSource, Class<T> beanClass, AnnotatedDAOFactory daoFactory, List<? extends QueryParameterPopulator<?>> queryParameterPopulators, List<? extends BeanStringPopulator<?>> typePopulators)
           
 
Method Summary
 void add(T bean)
           
 void add(T bean, Connection connection, RelationQuery relationQuery)
           
 void add(T bean, RelationQuery relationQuery)
           
 void add(T bean, TransactionHandler transactionHandler, RelationQuery relationQuery)
           
 void addAll(Collection<T> beans, Connection connection, RelationQuery relationQuery)
           
 void addAll(Collection<T> beans, RelationQuery relationQuery)
           
 void addAll(List<T> beans, TransactionHandler transactionHandler, RelationQuery relationQuery)
           
 void addOrUpdate(T bean, Connection connection, RelationQuery relationQuery)
           
 void addOrUpdate(T bean, RelationQuery relationQuery)
           
 void addOrUpdateAll(Collection<T> beans, Connection connection, RelationQuery relationQuery)
           
 void addOrUpdateAll(Collection<T> beans, TransactionHandler transactionHandler, RelationQuery relationQuery)
           
 boolean beanExists(T bean)
           
 boolean beanExists(T bean, Connection connection)
           
 boolean beanExists(T bean, TransactionHandler transactionHandler)
           
 TransactionHandler createTransaction()
           
 Integer delete(HighLevelQuery<T> highLevelQuery)
           
 Integer delete(HighLevelQuery<T> highLevelQuery, Connection connection)
           
 Integer delete(HighLevelQuery<T> highLevelQuery, TransactionHandler transactionHandler)
           
 void delete(List<T> beans)
           
 void delete(List<T> beans, Connection connection)
           
 void delete(List<T> beans, TransactionHandler transactionHandler)
           
 void delete(T bean)
           
 void delete(T bean, Connection connection)
           
 void delete(T bean, TransactionHandler transactionHandler)
           
 boolean deleteWhereNotIn(List<T> beans, Connection connection, Field excludedField, QueryParameter<T,?>... queryParameters)
           
 boolean deleteWhereNotIn(List<T> beans, TransactionHandler transactionHandler, Field excludedField, QueryParameter<T,?>... queryParameters)
           
protected  void generateCheckIfExistsSQL()
           
protected  void generateDeleteByFieldSQL()
           
protected  void generateDeleteSQL()
           
protected  void generateGetSQL()
           
protected  void generateInsertSQL()
           
protected  void generateUpdateSQL()
           
 T get(HighLevelQuery<T> highLevelQuery)
           
 T get(HighLevelQuery<T> highLevelQuery, Connection connection)
           
 T get(HighLevelQuery<T> highLevelQuery, TransactionHandler transactionHandler)
           
 T get(LowLevelQuery<T> lowLevelQuery)
           
 T get(LowLevelQuery<T> lowLevelQuery, Connection connection)
           
 T get(LowLevelQuery<T> lowLevelQuery, TransactionHandler transactionHandler)
           
 List<T> getAll()
           
 List<T> getAll(HighLevelQuery<T> highLevelQuery)
           
 List<T> getAll(HighLevelQuery<T> highLevelQuery, Connection connection)
           
 List<T> getAll(HighLevelQuery<T> highLevelQuery, TransactionHandler transactionHandler)
           
 List<T> getAll(LowLevelQuery<T> lowLevelQuery)
           
 List<T> getAll(LowLevelQuery<T> lowLevelQuery, Connection connection)
           
 List<T> getAll(LowLevelQuery<T> lowLevelQuery, TransactionHandler transactionHandler)
           
protected  List<T> getAll(String sql, CustomQueryParameter<?> queryParameter, Connection connection, RelationQuery relationQuery)
           
 Class<T> getBeanClass()
           
 boolean getBoolean(HighLevelQuery<T> highLevelQuery)
           
 boolean getBoolean(HighLevelQuery<T> highLevelQuery, Connection connection)
           
 boolean getBoolean(HighLevelQuery<T> highLevelQuery, TransactionHandler transactionHandler)
           
 boolean getBoolean(LowLevelQuery<T> lowLevelQuery)
           
 boolean getBoolean(LowLevelQuery<T> lowLevelQuery, Connection connection)
           
 boolean getBoolean(LowLevelQuery<T> lowLevelQuery, TransactionHandler transactionHandler)
           
 Integer getCount(HighLevelQuery<T> highLevelQuery)
           
 Integer getCount(HighLevelQuery<T> highLevelQuery, Connection connection)
           
 Integer getCount(HighLevelQuery<T> highLevelQuery, TransactionHandler transactionHandler)
           
 DataSource getDataSource()
           
 OrderByCriteria<T> getOrderByCriteria(Field field, Order order)
           
 OrderByCriteria<T> getOrderByCriteria(String fieldName, Order order)
           
<ParamType>
QueryParameterFactory<T,ParamType>
getParamFactory(Field field, Class<ParamType> paramClass)
           
<ParamType>
QueryParameterFactory<T,ParamType>
getParamFactory(String fieldName, Class<ParamType> paramClass)
           
protected  BeanResultSetPopulator<T> getPopulator(Connection connection, LowLevelQuery<T> query)
           
protected  BeanResultSetPopulator<T> getPopulator(Connection connection, RelationQuery relationQuery)
           
<QPT> QueryParameterPopulator<QPT>
getQueryParameterPopulator(Class<QPT> type)
           
 String getTableName()
           
 boolean hasKeysSet(T bean)
           
 boolean isNewBean(T bean, Connection connection)
           
protected  void populateRelation(T bean, Connection connection, RelationQuery relationQuery, Field relation)
           
protected  void populateRelations(T bean, Connection connection, RelationQuery relationQuery)
           
 void setQueryParameters(PreparedStatementQuery query, HighLevelQuery<T> highLevelQuery, int startIndex)
           
 void update(List<T> beans, Connection connection, RelationQuery relationQuery)
           
 void update(List<T> beans, RelationQuery relationQuery)
           
 void update(List<T> beans, TransactionHandler transactionHandler, RelationQuery relationQuery)
           
 void update(LowLevelQuery<T> lowLevelQuery)
           
 void update(LowLevelQuery<T> lowLevelQuery, Connection connection)
           
 void update(LowLevelQuery<T> lowLevelQuery, TransactionHandler transactionHandler)
           
 void update(T bean)
           
 Integer update(T bean, Connection connection, RelationQuery relationQuery)
           
 void update(T bean, RelationQuery relationQuery)
           
 void update(T bean, TransactionHandler transactionHandler, RelationQuery relationQuery)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

populator

protected final AnnotatedResultSetPopulator<T> populator

dataSource

protected final DataSource dataSource

beanClass

protected final Class<T> beanClass

queryParameterPopulators

protected final List<QueryParameterPopulator<?>> queryParameterPopulators

beanStringPopulators

protected final List<BeanStringPopulator<?>> beanStringPopulators

simpleKeys

protected final ArrayList<Column<T,?>> simpleKeys

simpleColumns

protected final ArrayList<Column<T,?>> simpleColumns

columnMap

protected final HashMap<Field,Column<T,?>> columnMap

columnKeyCollectors

protected final ArrayList<ColumnKeyCollector<T>> columnKeyCollectors

manyToOneRelations

protected final HashMap<Field,ManyToOneRelation<T,?,?>> manyToOneRelations

manyToOneRelationKeys

protected final HashMap<Field,ManyToOneRelation<T,?,?>> manyToOneRelationKeys

oneToManyRelations

protected final HashMap<Field,OneToManyRelation<T,?>> oneToManyRelations

manyToManyRelations

protected final HashMap<Field,ManyToManyRelation<T,?>> manyToManyRelations

columnOrderMap

protected final TreeMap<OrderBy,Column<T,?>> columnOrderMap

autoAddRelations

protected final ArrayList<Field> autoAddRelations

autoGetRelations

protected final ArrayList<Field> autoGetRelations

autoUpdateRelations

protected final ArrayList<Field> autoUpdateRelations

tableName

protected String tableName

insertSQL

protected String insertSQL

updateSQL

protected String updateSQL

deleteSQL

protected String deleteSQL

checkIfExistsSQL

protected String checkIfExistsSQL

deleteByFieldSQL

protected String deleteByFieldSQL

getSQL

protected String getSQL

defaultSortingCriteria

protected String defaultSortingCriteria
Constructor Detail

AnnotatedDAO

public AnnotatedDAO(DataSource dataSource,
                    Class<T> beanClass,
                    AnnotatedDAOFactory daoFactory)

AnnotatedDAO

public AnnotatedDAO(DataSource dataSource,
                    Class<T> beanClass,
                    AnnotatedDAOFactory daoFactory,
                    AnnotatedResultSetPopulator<T> populator,
                    QueryParameterPopulator<?>... queryParameterPopulators)

AnnotatedDAO

public AnnotatedDAO(DataSource dataSource,
                    Class<T> beanClass,
                    AnnotatedDAOFactory daoFactory,
                    List<? extends QueryParameterPopulator<?>> queryParameterPopulators,
                    List<? extends BeanStringPopulator<?>> typePopulators)

AnnotatedDAO

public AnnotatedDAO(DataSource dataSource,
                    Class<T> beanClass,
                    AnnotatedDAOFactory daoFactory,
                    AnnotatedResultSetPopulator<T> populator,
                    List<? extends QueryParameterPopulator<?>> queryParameterPopulators,
                    List<? extends BeanStringPopulator<?>> typePopulators)
Method Detail

getDataSource

public DataSource getDataSource()

getQueryParameterPopulator

public <QPT> QueryParameterPopulator<QPT> getQueryParameterPopulator(Class<QPT> type)

generateInsertSQL

protected void generateInsertSQL()

generateUpdateSQL

protected void generateUpdateSQL()

generateCheckIfExistsSQL

protected void generateCheckIfExistsSQL()

generateDeleteSQL

protected void generateDeleteSQL()

generateDeleteByFieldSQL

protected void generateDeleteByFieldSQL()

generateGetSQL

protected void generateGetSQL()

createTransaction

public TransactionHandler createTransaction()
                                     throws SQLException
Throws:
SQLException

add

public void add(T bean)
         throws SQLException
Throws:
SQLException

add

public void add(T bean,
                RelationQuery relationQuery)
         throws SQLException
Throws:
SQLException

addAll

public void addAll(Collection<T> beans,
                   RelationQuery relationQuery)
            throws SQLException
Throws:
SQLException

add

public void add(T bean,
                TransactionHandler transactionHandler,
                RelationQuery relationQuery)
         throws SQLException
Throws:
SQLException

addAll

public void addAll(List<T> beans,
                   TransactionHandler transactionHandler,
                   RelationQuery relationQuery)
            throws SQLException
Throws:
SQLException

addAll

public void addAll(Collection<T> beans,
                   Connection connection,
                   RelationQuery relationQuery)
            throws SQLException
Throws:
SQLException

add

public void add(T bean,
                Connection connection,
                RelationQuery relationQuery)
         throws SQLException
Throws:
SQLException

addOrUpdateAll

public void addOrUpdateAll(Collection<T> beans,
                           TransactionHandler transactionHandler,
                           RelationQuery relationQuery)
                    throws SQLException
Throws:
SQLException

addOrUpdateAll

public void addOrUpdateAll(Collection<T> beans,
                           Connection connection,
                           RelationQuery relationQuery)
                    throws SQLException
Throws:
SQLException

addOrUpdate

public void addOrUpdate(T bean,
                        RelationQuery relationQuery)
                 throws SQLException
Throws:
SQLException

addOrUpdate

public void addOrUpdate(T bean,
                        Connection connection,
                        RelationQuery relationQuery)
                 throws SQLException
Throws:
SQLException

isNewBean

public boolean isNewBean(T bean,
                         Connection connection)
                  throws SQLException
Throws:
SQLException

hasKeysSet

public boolean hasKeysSet(T bean)
                   throws SQLException
Throws:
SQLException

beanExists

public boolean beanExists(T bean)
                   throws SQLException
Throws:
SQLException

beanExists

public boolean beanExists(T bean,
                          TransactionHandler transactionHandler)
                   throws SQLException
Throws:
SQLException

beanExists

public boolean beanExists(T bean,
                          Connection connection)
                   throws SQLException
Throws:
SQLException

update

public void update(T bean)
            throws SQLException
Throws:
SQLException

update

public void update(T bean,
                   RelationQuery relationQuery)
            throws SQLException
Throws:
SQLException

update

public void update(T bean,
                   TransactionHandler transactionHandler,
                   RelationQuery relationQuery)
            throws SQLException
Throws:
SQLException

update

public Integer update(T bean,
                      Connection connection,
                      RelationQuery relationQuery)
               throws SQLException
Throws:
SQLException

update

public void update(List<T> beans,
                   RelationQuery relationQuery)
            throws SQLException
Throws:
SQLException

update

public void update(List<T> beans,
                   TransactionHandler transactionHandler,
                   RelationQuery relationQuery)
            throws SQLException
Throws:
SQLException

update

public void update(List<T> beans,
                   Connection connection,
                   RelationQuery relationQuery)
            throws SQLException
Throws:
SQLException

update

public void update(LowLevelQuery<T> lowLevelQuery)
            throws SQLException
Throws:
SQLException

update

public void update(LowLevelQuery<T> lowLevelQuery,
                   TransactionHandler transactionHandler)
            throws SQLException
Throws:
SQLException

update

public void update(LowLevelQuery<T> lowLevelQuery,
                   Connection connection)
            throws SQLException
Throws:
SQLException

get

public T get(LowLevelQuery<T> lowLevelQuery)
      throws SQLException
Throws:
SQLException

get

public T get(LowLevelQuery<T> lowLevelQuery,
             TransactionHandler transactionHandler)
      throws SQLException
Throws:
SQLException

get

public T get(LowLevelQuery<T> lowLevelQuery,
             Connection connection)
      throws SQLException
Throws:
SQLException

getBoolean

public boolean getBoolean(LowLevelQuery<T> lowLevelQuery)
                   throws SQLException
Throws:
SQLException

getBoolean

public boolean getBoolean(LowLevelQuery<T> lowLevelQuery,
                          TransactionHandler transactionHandler)
                   throws SQLException
Throws:
SQLException

getBoolean

public boolean getBoolean(LowLevelQuery<T> lowLevelQuery,
                          Connection connection)
                   throws SQLException
Throws:
SQLException

get

public T get(HighLevelQuery<T> highLevelQuery)
      throws SQLException
Throws:
SQLException

get

public T get(HighLevelQuery<T> highLevelQuery,
             TransactionHandler transactionHandler)
      throws SQLException
Throws:
SQLException

get

public T get(HighLevelQuery<T> highLevelQuery,
             Connection connection)
      throws SQLException
Throws:
SQLException

getBoolean

public boolean getBoolean(HighLevelQuery<T> highLevelQuery)
                   throws SQLException
Throws:
SQLException

getBoolean

public boolean getBoolean(HighLevelQuery<T> highLevelQuery,
                          TransactionHandler transactionHandler)
                   throws SQLException
Throws:
SQLException

getBoolean

public boolean getBoolean(HighLevelQuery<T> highLevelQuery,
                          Connection connection)
                   throws SQLException
Throws:
SQLException

getPopulator

protected BeanResultSetPopulator<T> getPopulator(Connection connection,
                                                 LowLevelQuery<T> query)

getPopulator

protected BeanResultSetPopulator<T> getPopulator(Connection connection,
                                                 RelationQuery relationQuery)

populateRelations

protected void populateRelations(T bean,
                                 Connection connection,
                                 RelationQuery relationQuery)
                          throws SQLException
Throws:
SQLException

populateRelation

protected void populateRelation(T bean,
                                Connection connection,
                                RelationQuery relationQuery,
                                Field relation)
                         throws SQLException
Throws:
SQLException

getAll

public List<T> getAll(LowLevelQuery<T> lowLevelQuery)
               throws SQLException
Throws:
SQLException

getAll

public List<T> getAll(LowLevelQuery<T> lowLevelQuery,
                      TransactionHandler transactionHandler)
               throws SQLException
Throws:
SQLException

getAll

public List<T> getAll(LowLevelQuery<T> lowLevelQuery,
                      Connection connection)
               throws SQLException
Throws:
SQLException

getAll

protected List<T> getAll(String sql,
                         CustomQueryParameter<?> queryParameter,
                         Connection connection,
                         RelationQuery relationQuery)
                  throws SQLException
Throws:
SQLException

getAll

public List<T> getAll(HighLevelQuery<T> highLevelQuery)
               throws SQLException
Throws:
SQLException

getAll

public List<T> getAll(HighLevelQuery<T> highLevelQuery,
                      TransactionHandler transactionHandler)
               throws SQLException
Throws:
SQLException

getAll

public List<T> getAll(HighLevelQuery<T> highLevelQuery,
                      Connection connection)
               throws SQLException
Throws:
SQLException

getAll

public List<T> getAll()
               throws SQLException
Throws:
SQLException

delete

public void delete(T bean)
            throws SQLException
Throws:
SQLException

delete

public void delete(T bean,
                   TransactionHandler transactionHandler)
            throws SQLException
Throws:
SQLException

delete

public void delete(T bean,
                   Connection connection)
            throws SQLException
Throws:
SQLException

delete

public void delete(List<T> beans)
            throws SQLException
Throws:
SQLException

delete

public void delete(List<T> beans,
                   TransactionHandler transactionHandler)
            throws SQLException
Throws:
SQLException

delete

public void delete(List<T> beans,
                   Connection connection)
            throws SQLException
Throws:
SQLException

delete

public Integer delete(HighLevelQuery<T> highLevelQuery)
               throws SQLException
Throws:
SQLException

delete

public Integer delete(HighLevelQuery<T> highLevelQuery,
                      TransactionHandler transactionHandler)
               throws SQLException
Throws:
SQLException

delete

public Integer delete(HighLevelQuery<T> highLevelQuery,
                      Connection connection)
               throws SQLException
Throws:
SQLException

deleteWhereNotIn

public boolean deleteWhereNotIn(List<T> beans,
                                TransactionHandler transactionHandler,
                                Field excludedField,
                                QueryParameter<T,?>... queryParameters)
                         throws SQLException
Throws:
SQLException

deleteWhereNotIn

public boolean deleteWhereNotIn(List<T> beans,
                                Connection connection,
                                Field excludedField,
                                QueryParameter<T,?>... queryParameters)
                         throws SQLException
Throws:
SQLException

getCount

public Integer getCount(HighLevelQuery<T> highLevelQuery)
                 throws SQLException
Throws:
SQLException

getCount

public Integer getCount(HighLevelQuery<T> highLevelQuery,
                        TransactionHandler transactionHandler)
                 throws SQLException
Throws:
SQLException

getCount

public Integer getCount(HighLevelQuery<T> highLevelQuery,
                        Connection connection)
                 throws SQLException
Throws:
SQLException

getParamFactory

public <ParamType> QueryParameterFactory<T,ParamType> getParamFactory(Field field,
                                                                      Class<ParamType> paramClass)

getParamFactory

public <ParamType> QueryParameterFactory<T,ParamType> getParamFactory(String fieldName,
                                                                      Class<ParamType> paramClass)

getOrderByCriteria

public OrderByCriteria<T> getOrderByCriteria(Field field,
                                             Order order)

getOrderByCriteria

public OrderByCriteria<T> getOrderByCriteria(String fieldName,
                                             Order order)

getTableName

public String getTableName()

setQueryParameters

public void setQueryParameters(PreparedStatementQuery query,
                               HighLevelQuery<T> highLevelQuery,
                               int startIndex)
                        throws SQLException
Throws:
SQLException

getBeanClass

public Class<T> getBeanClass()


Copyright © 2011. All Rights Reserved.