OSDN Git Service

DBFlute-0.9.3に更新
[ea2ddl/ea2ddl.git] / ea2ddl-gen / dbflute / templates / om / java / bsentity / dbmeta / DBMetaImpl.vm
1 ${database.allClassCopyright}package ${myDBMetaPackageName};\r
2 #set ($myClassName = "${myDBMetaClassName}")\r
3 \r
4 import java.util.List;\r
5 import java.util.Map;\r
6 \r
7 import ${glPackageBaseCommon}.${glEntityInterfaceName};\r
8 import ${glPackageBaseCommonDBMeta}.${glDBMetaAbstractName};\r
9 import ${myExtendedEntityPackageName}.${myExtendedObjectClassName};\r
10 import ${glPackageBaseCommonDBMetaInfo}.*;\r
11 \r
12 /**\r
13  * The DB meta of ${table.Name}. (Singleton)\r
14  * @author ${database.ClassAuthor}\r
15  */${database.outputSuppressWarningsAfterLineSeparator()}\r
16 public class ${myClassName} extends ${glDBMetaAbstractName} {\r
17 \r
18     private static final ${myClassName} _instance = new ${myClassName}();\r
19     private ${myClassName}() {}\r
20     public static ${myClassName} getInstance() { return _instance; }\r
21 \r
22     // ===================================================================================\r
23     //                                                                          Table Info\r
24     //                                                                          ==========\r
25     public String getTableDbName() { return "$table.name"; }\r
26     public String getTablePropertyName() { return "$table.javaBeansRulePropertyName"; }\r
27     public String getTableSqlName() { return "$table.tableSqlName"; }\r
28 \r
29     // ===================================================================================\r
30     //                                                                         Column Info\r
31     //                                                                         ===========\r
32 #foreach ($col in $table.columns)\r
33 #if ($col.isVersionNo())\r
34     protected ${glColumnInfoName} _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}, OptimisticLockType.VERSION_NO);\r
35 #elseif ($col.isUpdateDate())\r
36     protected ${glColumnInfoName} _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression}, OptimisticLockType.UPDATE_DATE);\r
37 #else\r
38     protected ${glColumnInfoName} _column${col.javaBeansRulePropertyNameInitCap} = cci("${col.name}", "${col.javaBeansRulePropertyName}", ${col.javaNative}.class, ${col.isPrimaryKey()}, ${col.columnSizeSettingExpression}, ${col.columnDecimalDigitsSettingExpression});\r
39 #end\r
40 #end\r
41 \r
42 #foreach ($col in $table.columns)\r
43     public ${glColumnInfoName} column${col.javaBeansRulePropertyNameInitCap}() { return _column${col.javaBeansRulePropertyNameInitCap}; }\r
44 #end\r
45     { initializeColumnInfoList(); }\r
46 #if ($database.isMakeDBMetaStaticDefinition())\r
47 \r
48     // ===================================================================================\r
49     //                                                                     Name Definition\r
50     //                                                                     ===============\r
51     // -----------------------------------------------------\r
52     //                                                 Table\r
53     //                                                 -----\r
54     public static final String TABLE_DB_NAME = "$table.name";\r
55     public static final String TABLE_PROPERTY_NAME = "$table.javaBeansRulePropertyName";\r
56 \r
57     // -----------------------------------------------------\r
58     //                                        Column DB Name\r
59     //                                        --------------\r
60 #foreach ($col in $table.columns)\r
61     public static final String DB_NAME_${col.name} = "$col.name";\r
62 #end\r
63 \r
64     // -----------------------------------------------------\r
65     //                                  Column Property Name\r
66     //                                  (JavaBeansRule)\r
67     //                                  --------------------\r
68 #foreach ($col in $table.columns)\r
69     public static final String PROPERTY_NAME_${col.javaBeansRulePropertyName} = "$col.javaBeansRulePropertyName";\r
70 #end\r
71 #end\r
72 \r
73     // ===================================================================================\r
74     //                                                                            Name Map\r
75     //                                                                            ========\r
76     public Map<String, String> getDbNamePropertyNameKeyToLowerMap() { return createDbNamePropertyNameKeyToLowerMap(); }\r
77     public Map<String, String> getPropertyNameDbNameKeyToLowerMap() { return createPropertyNameDbNameKeyToLowerMap(); }\r
78     protected static Map<String, String> _dbNamePropertyNameKeyToLowerMap;\r
79     protected Map<String, String> createDbNamePropertyNameKeyToLowerMap() {\r
80         if (_dbNamePropertyNameKeyToLowerMap == null) { _dbNamePropertyNameKeyToLowerMap = setupKeyToLowerMap(true); }\r
81         return _dbNamePropertyNameKeyToLowerMap;\r
82     }\r
83     protected static Map<String, String> _propertyNameDbNameKeyToLowerMap;\r
84     protected Map<String, String> createPropertyNameDbNameKeyToLowerMap() {\r
85         if (_propertyNameDbNameKeyToLowerMap == null) { _propertyNameDbNameKeyToLowerMap = setupKeyToLowerMap(false); }\r
86         return _propertyNameDbNameKeyToLowerMap;\r
87     }\r
88 \r
89     // ===================================================================================\r
90     //                                                                           Type Name\r
91     //                                                                           =========\r
92     public String getEntityTypeName() { return "${myExtendedEntityPackageName}.${myExtendedObjectClassName}"; }\r
93 #if ($isExistConditionBean)\r
94     public String getConditionBeanTypeName() { return "${glPackageBaseCB}.${myConditionBeanClassName}"; }\r
95 #else\r
96     public String getConditionBeanTypeName() { return null; }\r
97 #end\r
98 #if ($isExistDao)\r
99     public String getDaoTypeName() { return "${myExtendedDaoPackageName}.${myExtendedDaoClassName}"; }\r
100 #else\r
101     public String getDaoTypeName() { return null; }\r
102 #end\r
103 #if ($isExistBehavior)\r
104     public String getBehaviorTypeName() { return "${myExtendedBhvPackageName}.${myExtendedBhvClassName}"; }\r
105 #else\r
106     public String getBehaviorTypeName() { return null; }\r
107 #end\r
108 \r
109     // ===================================================================================\r
110     //                                                                         Object Type\r
111     //                                                                         ===========\r
112     public Class<${myExtendedObjectClassName}> getEntityType() { return ${myExtendedObjectClassName}.class; }\r
113 \r
114     // ===================================================================================\r
115     //                                                                     Object Instance\r
116     //                                                                     ===============\r
117     public ${glEntityInterfaceName} newEntity() { return newMyEntity(); }\r
118     public ${myExtendedObjectClassName} newMyEntity() { return new ${myExtendedObjectClassName}(); }\r
119 \r
120     // ===================================================================================\r
121     //                                                                         Unique Info\r
122     //                                                                         ===========\r
123     // -----------------------------------------------------\r
124     //                                       Primary Element\r
125     //                                       ---------------\r
126 #if ($table.hasPrimaryKey())\r
127 #if ($table.hasOnlyOnePrimaryKey())\r
128     public ${glUniqueInfoName} getPrimaryUniqueInfo() { return createPrimaryUniqueInfo(column${table.primaryKeyAsOne.javaBeansRulePropertyNameInitCap}()); }\r
129 #else\r
130     public ${glUniqueInfoName} getPrimaryUniqueInfo() {\r
131         ${glUniqueInfoName} uniqueInfo = createPrimaryUniqueInfo();\r
132 #foreach ($col in $table.primaryKey)\r
133         uniqueInfo.addUniqueColumnList(column${col.javaBeansRulePropertyNameInitCap}());\r
134 #end\r
135         return uniqueInfo;\r
136     }\r
137 #end\r
138 #else\r
139     public ${glUniqueInfoName} getPrimaryUniqueInfo() {\r
140         throw new UnsupportedOperationException("The table doen not have primary key: " + getTableDbName());\r
141     }\r
142 #end\r
143     public boolean hasPrimaryKey() { return ${table.hasPrimaryKey()}; }\r
144     public boolean hasTwoOrMorePrimaryKeys() { return ${table.hasTwoOrMorePrimaryKeys()}; }\r
145 \r
146     // ===================================================================================\r
147     //                                                                       Relation Info\r
148     //                                                                       =============\r
149     // -----------------------------------------------------\r
150     //                                      Foreign Property\r
151     //                                      ----------------\r
152 #foreach ($foreignKeys in $table.foreignKeys)\r
153     public ${glForeignInfoName} foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}() {\r
154 #if ($foreignKeys.isSimpleKeyFK())\r
155 #set ($column = $foreignKeys.localColumnAsOne)\r
156 #set ($yourColumn = ${foreignKeys.getForeignColumnByLocalColumn(${column})})\r
157                 Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${foreignKeys.foreignTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
158 #else\r
159         Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap();\r
160 #foreach ($column in $foreignKeys.localColumnList)\r
161 #set ($yourColumn = ${foreignKeys.getForeignColumnByLocalColumn(${column})})\r
162         map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${foreignKeys.foreignTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
163 #end\r
164 #end\r
165             return cfi("${foreignKeys.foreignJavaBeansRulePropertyName}", this, ${foreignKeys.foreignTableDBMetaClassName}.getInstance(), map, ${table.resolveForeignIndex($foreignKeys)}, ${foreignKeys.isOneToOne()});\r
166     }\r
167 #end\r
168 #foreach ($referrer in $table.referrers)\r
169 #set ($genericsColumnInfoMap = "${glColumnInfoName}, ${glColumnInfoName}")\r
170 #if (${referrer.isOneToOne()})\r
171     public ${glForeignInfoName} foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}() {\r
172 #if ($referrer.isSimpleKeyFK())\r
173 #set ($column = $referrer.foreignColumnAsOne)\r
174 #set ($yourColumn = ${referrer.getLocalColumnByForeignColumn(${column})})\r
175         Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
176 #else\r
177                 Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap();\r
178 #foreach ($column in $referrer.foreignColumnList)\r
179 #set ($yourColumn = ${referrer.getLocalColumnByForeignColumn(${column})})\r
180         map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${yourColumn.javaBeansRulePropertyNameInitCap}());\r
181 #end\r
182 #end\r
183             return cfi("${referrer.refererJavaBeansRulePropertyNameAsOne}", this, ${referrer.referrerTableDBMetaClassName}.getInstance(), map, ${table.resolveReferrerIndexAsOne($referrer)}, ${referrer.isOneToOne()});\r
184     }\r
185 #end\r
186 #end\r
187 \r
188     // -----------------------------------------------------\r
189     //                                     Referrer Property\r
190     //                                     -----------------\r
191 #foreach ($referrer in $table.referrers)\r
192 #if (!${referrer.isOneToOne()})\r
193     public ${glReferrerInfoName} referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}() {\r
194 #if ($referrer.isSimpleKeyFK())\r
195 #set ($column = $referrer.foreignColumnAsOne)\r
196         Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${referrer.getLocalColumnByForeignColumn(${column}).javaBeansRulePropertyNameInitCap}());\r
197 #else\r
198                 Map<${glColumnInfoName}, ${glColumnInfoName}> map = newLinkedHashMap();\r
199 #foreach ($column in $referrer.foreignColumnList)\r
200         map.put(column${column.javaBeansRulePropertyNameInitCap}(), ${referrer.referrerTableDBMetaClassName}.getInstance().column${referrer.getLocalColumnByForeignColumn(${column}).javaBeansRulePropertyNameInitCap}());\r
201 #end\r
202 #end\r
203             return cri("${referrer.referrerJavaBeansRulePropertyName}", this, ${referrer.referrerTableDBMetaClassName}.getInstance(), map, ${referrer.isOneToOne()});\r
204     }\r
205 #end\r
206 #end\r
207 #if ($database.isMakeFlatExpansion())\r
208 \r
209     // -----------------------------------------------------\r
210     //                                        Relation Trace\r
211     //                                        --------------\r
212     public ${table.relationTraceClassName}RelationTrace createRelationTrace(RelationTraceFixHandler relationTraceFixHandler) {\r
213         return new ${table.relationTraceClassName}RelationTrace(relationTraceFixHandler);\r
214     }\r
215 \r
216     public ${table.relationTraceClassName}RelationTrace createRelationTrace(List<${glRelationInfoName}> relationList, List<AbstractRelationTrace> relationTraceList) {\r
217         return new ${table.relationTraceClassName}RelationTrace(relationList, relationTraceList);\r
218     }\r
219 \r
220     public static class ${table.relationTraceClassName}RelationTrace extends AbstractRelationTrace {\r
221 \r
222         /**\r
223          * Constructor for first step.\r
224          * @param relationTraceFixHandler The handler of fixed relation trace. (Nullable)\r
225          */\r
226         public ${table.relationTraceClassName}RelationTrace(RelationTraceFixHandler relationTraceFixHandler) {\r
227             super(relationTraceFixHandler);\r
228         }\r
229 \r
230         /**\r
231          * Constructor for relation step.\r
232          * @param relationList The list of relation. (NotNull)\r
233          * @param relationTraceList The list of relation trace. (NotNull)\r
234          */\r
235         public ${table.relationTraceClassName}RelationTrace(List<${glRelationInfoName}> relationList, List<AbstractRelationTrace> relationTraceList) {\r
236             super(relationList, relationTraceList);\r
237         }\r
238 \r
239 #foreach ($foreignKeys in $table.foreignKeys)\r
240         public ${foreignKeys.foreignTableDBMetaClassName}.${foreignKeys.foreignTable.relationTraceClassName}RelationTrace foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}() {\r
241             _relationList.add(${myDBMetaClassName}.getInstance().foreign${foreignKeys.foreignJavaBeansRulePropertyNameInitCap}());\r
242             return ${foreignKeys.foreignTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
243         }\r
244 #end\r
245 #foreach ($referrer in $table.referrers)\r
246 #if (${referrer.isOneToOne()})\r
247         public ${referrer.referrerTableDBMetaClassName}.${referrer.table.relationTraceClassName}RelationTrace foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}() {\r
248             _relationList.add(${myDBMetaClassName}.getInstance().foreign${referrer.referrerJavaBeansRulePropertyNameAsOneInitCap}());\r
249             return ${referrer.referrerTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
250         }\r
251 #end\r
252 #end\r
253 #foreach ($referrer in $table.referrers)\r
254 #if (!${referrer.isOneToOne()})\r
255         public ${referrer.referrerTableDBMetaClassName}.${referrer.table.relationTraceClassName}RelationTrace referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}() {\r
256             _relationList.add(${myDBMetaClassName}.getInstance().referrer${referrer.referrerJavaBeansRulePropertyNameInitCap}());\r
257             return ${referrer.referrerTableDBMetaClassName}.getInstance().createRelationTrace(_relationList, _relationTraceList);\r
258         }\r
259 #end\r
260 #end\r
261 \r
262 #foreach ($col in $table.columns)\r
263         public RelationTrace column${col.javaBeansRulePropertyNameInitCap}() { return fixTrace(_relationList, ${myDBMetaClassName}.getInstance().column${col.javaBeansRulePropertyNameInitCap}()); }\r
264 #end\r
265     }\r
266 #end\r
267 \r
268     // ===================================================================================\r
269     //                                                                        Various Info\r
270     //                                                                        ============\r
271 #if ($table.isUseSequence())\r
272     public boolean hasSequence() { return true; }\r
273     public String getSequenceNextValSql() { return "${table.sequenceNextSql}"; }\r
274 #end\r
275 #if ($table.isUseVersionNo())\r
276     public boolean hasVersionNo() { return true; }\r
277     public ${glColumnInfoName} getVersionNoColumnInfo() { return _column${table.versionNoJavaName}; }\r
278 #end\r
279 #if ($table.isUseUpdateDate())\r
280     public boolean hasUpdateDate() { return true; }\r
281     public ${glColumnInfoName} getUpdateDateColumnInfo() { return _column${table.updateDateJavaName}; }\r
282 #end\r
283 #if ($table.hasAllCommonColumn())\r
284     public boolean hasCommonColumn() { return true; }\r
285 #end\r
286 \r
287     // ===================================================================================\r
288     //                                                                     Entity Handling\r
289     //                                                                     ===============  \r
290     // -----------------------------------------------------\r
291     //                                                Accept\r
292     //                                                ------\r
293     public void acceptPrimaryKeyMap(${glEntityInterfaceName} entity, Map<String, ? extends Object> primaryKeyMap) {\r
294                 doAcceptPrimaryKeyMap((${myExtendedObjectClassName})entity, primaryKeyMap, _epsMap);\r
295     }\r
296 \r
297     public void acceptPrimaryKeyMapString(${glEntityInterfaceName} entity, String primaryKeyMapString) {\r
298         MapStringUtil.acceptPrimaryKeyMapString(primaryKeyMapString, entity);\r
299     }\r
300 \r
301     public void acceptColumnValueMap(${glEntityInterfaceName} entity, Map<String, ? extends Object> columnValueMap) {\r
302         doAcceptColumnValueMap((${myExtendedObjectClassName})entity, columnValueMap, _epsMap);\r
303     }\r
304 \r
305     public void acceptColumnValueMapString(${glEntityInterfaceName} entity, String columnValueMapString) {\r
306         MapStringUtil.acceptColumnValueMapString(columnValueMapString, entity);\r
307     }\r
308 \r
309     // -----------------------------------------------------\r
310     //                                               Extract\r
311     //                                               -------\r
312     public String extractPrimaryKeyMapString(${glEntityInterfaceName} entity) { return MapStringUtil.extractPrimaryKeyMapString(entity); }\r
313     public String extractPrimaryKeyMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal) {\r
314         return doExtractPrimaryKeyMapString(entity, startBrace, endBrace, delimiter, equal);\r
315     }\r
316     public String extractColumnValueMapString(${glEntityInterfaceName} entity) { return MapStringUtil.extractColumnValueMapString(entity); }\r
317     public String extractColumnValueMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal) {\r
318         return doExtractColumnValueMapString(entity, startBrace, endBrace, delimiter, equal);\r
319     }\r
320 #if ($database.isMakeDBMetaCommonColumnHandling())\r
321 #if (${table.hasAllCommonColumn()})\r
322 \r
323     public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity) {\r
324         return extractCommonColumnValueMapString(entity, MAP_STRING_START_BRACE, MAP_STRING_END_BRACE, MAP_STRING_DELIMITER, MAP_STRING_EQUAL);\r
325     }\r
326 \r
327     public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal) {\r
328         final ${myExtendedObjectClassName} myEntity = (${myExtendedObjectClassName})entity;\r
329         final String mapMarkAndStartBrace = MAP_STRING_MAP_MARK + startBrace;\r
330         final StringBuffer sb = new StringBuffer();\r
331   #foreach ($columnName in ${database.commonColumnNameList})\r
332     #set ($filteredColumnName = ${database.filterCommonColumn(${columnName})})\r
333     #set ($commonColumnMap = ${database.commonColumnMap})\r
334     #set ($columnType = ${commonColumnMap.get(${columnName})})\r
335     #set ($javaNative = ${database.convertJavaNativeByJdbcType(${columnType})})\r
336     #set ($javaName = ${database.convertJavaNameByJdbcNameAsColumn(${filteredColumnName})})\r
337     #set ($targetColumnName = ${table.findTargetColumnNameByCommonColumnName(${columnName})})\r
338     #set ($col = $table.getColumnByFlexibleName($columnName))\r
339     #if ($col.isJavaNativeDateObject())\r
340 \r
341         sb.append(delimiter).append("${targetColumnName}").append(equal);\r
342         sb.append((myEntity.get${javaName}() != null ? helpFormatingDate(myEntity.get${javaName}()) : ""));\r
343     #else\r
344 \r
345         sb.append(delimiter).append("${targetColumnName}").append(equal);\r
346         sb.append((myEntity.get${javaName}() != null ? myEntity.get${javaName}().toString() : ""));\r
347     #end\r
348   #end\r
349 \r
350         sb.delete(0, delimiter.length()).insert(0, mapMarkAndStartBrace).append(endBrace);\r
351         return sb.toString();\r
352     }\r
353 #else\r
354 \r
355     public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity) {\r
356         return "map:{}";\r
357     }\r
358 \r
359     public String extractCommonColumnValueMapString(${glEntityInterfaceName} entity, String startBrace, String endBrace, String delimiter, String equal) {\r
360         return "map:" + startBrace + endBrace;\r
361     }\r
362 #end\r
363 #end\r
364 \r
365     // -----------------------------------------------------\r
366     //                                               Convert\r
367     //                                               -------\r
368     public List<Object> convertToColumnValueList(${glEntityInterfaceName} entity) { return newArrayList(convertToColumnValueMap(entity).values()); }\r
369     public Map<String, Object> convertToColumnValueMap(${glEntityInterfaceName} entity) { return doConvertToColumnValueMap(entity); }\r
370     public List<String> convertToColumnStringValueList(${glEntityInterfaceName} entity) { return newArrayList(convertToColumnStringValueMap(entity).values()); }\r
371     public Map<String, String> convertToColumnStringValueMap(${glEntityInterfaceName} entity) { return doConvertToColumnStringValueMap(entity); }\r
372 #if ($database.isMakeDBMetaJDBCSupport())\r
373 \r
374     // ===================================================================================\r
375     //                                                                        JDBC Support\r
376     //                                                                        ============\r
377     public String getPreparedInsertClause() {\r
378         return getPreparedInsertClause(new PreparedInsertClauseOption());\r
379     }\r
380 \r
381     public String getPreparedInsertClause(PreparedInsertClauseOption preparedInsertClauseOption) {\r
382         if (preparedInsertClauseOption.getTablePrefix() != null) {\r
383             final String tablePrefix = preparedInsertClauseOption.getTablePrefix();\r
384             return "insert into " + tablePrefix + "${table.name}(${table.ColumnNameCommaString}) values(${table.insertClauseValuesAsQuetionMark})";\r
385         }\r
386         return "insert into ${table.name}(${table.ColumnNameCommaString}) values(${table.insertClauseValuesAsQuetionMark})";\r
387     }\r
388 #end\r
389 \r
390     // ===================================================================================\r
391     //                                                               Entity Property Setup\r
392     //                                                               =====================\r
393     // It's very INTERNAL!\r
394     protected Map<String, Eps<${myExtendedObjectClassName}>> _epsMap = newHashMap();\r
395     {\r
396 #foreach ($column in $table.columns)\r
397         setupEps(_epsMap, new Eps${column.javaName}(), column${column.javaBeansRulePropertyNameInitCap}());\r
398 #end\r
399     }\r
400     \r
401     public boolean hasEntityPropertySetupper(String propertyName) {\r
402         return _epsMap.containsKey(propertyName);\r
403     }\r
404 \r
405     public void setupEntityProperty(String propertyName, Object entity, Object value) {\r
406         findEps(_epsMap, propertyName).setup((${myExtendedObjectClassName})entity, value);\r
407     }\r
408     \r
409 #foreach ($column in $table.columns)\r
410     public static class Eps${column.javaName} implements Eps<${myExtendedObjectClassName}> {\r
411         public void setup(${myExtendedObjectClassName} e, Object v) { e.set${column.javaName}((${column.javaNative})v); }\r
412     }\r
413 #end\r
414 }\r