1 package jp.sourceforge.ea2ddl.dao.allcommon.s2dao.internal.rshandler;
\r
3 import java.sql.ResultSet;
\r
4 import java.sql.SQLException;
\r
5 import java.util.Map;
\r
6 import java.util.Set;
\r
8 import org.seasar.dao.BeanMetaData;
\r
9 import org.seasar.dao.RelationPropertyType;
\r
10 import org.seasar.dao.RelationRowCreator;
\r
11 import org.seasar.dao.RowCreator;
\r
13 import jp.sourceforge.ea2ddl.dao.allcommon.Entity;
\r
16 * @author DBFlute(AutoGenerator)
\r
18 @SuppressWarnings("unchecked")
\r
19 public abstract class InternalAbstractBeanMetaDataResultSetHandler extends InternalAbstractDtoMetaDataResultSetHandler {
\r
21 // ===================================================================================
\r
24 private BeanMetaData beanMetaData;
\r
25 protected RelationRowCreator relationRowCreator;
\r
27 // ===================================================================================
\r
31 * @param beanMetaData Bean meta data. (NotNull)
\r
32 * @param rowCreator Row creator. (NotNull)
\r
33 * @param relationRowCreator Relation row creator. (NotNul)
\r
35 public InternalAbstractBeanMetaDataResultSetHandler(BeanMetaData beanMetaData, RowCreator rowCreator, RelationRowCreator relationRowCreator) {
\r
36 super(beanMetaData, rowCreator);
\r
37 this.beanMetaData = beanMetaData;
\r
38 this.relationRowCreator = relationRowCreator;
\r
41 // ===================================================================================
\r
45 * @param columnNames The set of column name. (NotNull)
\r
46 * @return The map of row property cache. Map{String(columnName), PropertyType} (NotNull)
\r
47 * @throws SQLException
\r
49 protected Map createPropertyCache(Set columnNames) throws SQLException {
\r
50 // - - - - - - - - -
\r
51 // Override for Bean
\r
52 // - - - - - - - - -
\r
53 return rowCreator.createPropertyCache(columnNames, beanMetaData);
\r
57 * @param rs Result set. (NotNull)
\r
58 * @param propertyCache The map of property cache. Map{String(columnName), PropertyType} (NotNull)
\r
59 * @return Created row. (NotNull)
\r
60 * @throws SQLException
\r
62 protected Object createRow(ResultSet rs, Map propertyCache) throws SQLException {
\r
63 // - - - - - - - - -
\r
64 // Override for Bean
\r
65 // - - - - - - - - -
\r
66 final Class beanClass = beanMetaData.getBeanClass();
\r
67 return rowCreator.createRow(rs, propertyCache, beanClass);
\r
71 * @param columnNames The set of column name. (NotNull)
\r
72 * @return The map of relation property cache. Map{String(relationNoSuffix), Map{String(columnName), PropertyType}} (NotNull)
\r
73 * @throws SQLException
\r
75 protected Map createRelationPropertyCache(Set columnNames) throws SQLException {
\r
76 return relationRowCreator.createPropertyCache(columnNames, beanMetaData);
\r
80 * @param rs Result set. (NotNull)
\r
81 * @param rpt The type of relation property. (NotNull)
\r
82 * @param columnNames The set of column name. (NotNull)
\r
83 * @param relKeyValues The map of rel key values. (Nullable)
\r
84 * @param relationPropertyCache The map of relation property cache. Map{String(relationNoSuffix), Map{String(columnName), PropertyType}} (NotNull)
\r
85 * @return Created relation row. (Nullable)
\r
86 * @throws SQLException
\r
88 protected Object createRelationRow(ResultSet rs, RelationPropertyType rpt,
\r
89 Set columnNames, Map relKeyValues, Map relationPropertyCache) throws SQLException {
\r
90 return relationRowCreator.createRelationRow(rs, rpt, columnNames, relKeyValues, relationPropertyCache);
\r
94 * @param row The row of result list. (NotNull)
\r
96 protected void postCreateRow(final Object row) {
\r
97 if (row instanceof Entity) { // DBFlute Target
\r
98 ((Entity)row).clearModifiedPropertyNames();
\r
99 } else { // Basically Unreachable
\r
100 final BeanMetaData bmd = getBeanMetaData();
\r
101 final Set names = bmd.getModifiedPropertyNames(row);
\r
106 // ===================================================================================
\r
109 public BeanMetaData getBeanMetaData() {
\r
110 return beanMetaData;
\r