OSDN Git Service

53d9c9814c195f789555ebcc8897fabce9cfb5e8
[ea2ddl/ea2ddl.git] / ea2ddl-gen / dbflute / templates / om / java / cbean / BsConditionQuery.vm
1 ${database.allClassCopyright}package ${glPackageBaseCQ};\r
2 #set ($myClassName = "${myBaseConditionQueryClassName}")\r
3 \r
4 import java.util.Map;\r
5 \r
6 import ${glPackageBaseCommonCBean}.*;\r
7 import ${glPackageBaseCommonCValue}.${glConditionValueName};\r
8 import ${glPackageBaseCommonSqlClause}.${glSqlClauseName};\r
9 import ${glPackageCIQ}.*;\r
10 import ${glPackageCQ}.*;\r
11 \r
12 /**\r
13  * The base condition-query of ${table.name}.\r
14  * @author ${database.ClassAuthor}\r
15  */${database.outputSuppressWarningsAfterLineSeparator()}\r
16 public class ${myClassName} extends ${myAbstractBaseConditionQueryClassName} {\r
17 \r
18     // ===================================================================================\r
19     //                                                                           Attribute\r
20     //                                                                           =========\r
21     protected ${myConditionInlineQueryClassName} _inlineQuery;\r
22 \r
23     // ===================================================================================\r
24     //                                                                         Constructor\r
25     //                                                                         ===========\r
26     public ${myClassName}(${glConditionQueryInterfaceName} childQuery, ${glSqlClauseName} sqlClause, String aliasName, int nestLevel) {\r
27         super(childQuery, sqlClause, aliasName, nestLevel);\r
28     }\r
29 \r
30     // ===================================================================================\r
31     //                                                                              Inline\r
32     //                                                                              ======\r
33     /**\r
34      * Prepare inline query. <br />\r
35      * {select ... from ... left outer join (select * from ${table.name}) where abc = [abc] ...}\r
36      * @return Inline query. (NotNull)\r
37      */\r
38     public ${myConditionInlineQueryClassName} inline() {\r
39         if (_inlineQuery == null) {\r
40             _inlineQuery = new ${myConditionInlineQueryClassName}(getChildQuery(), getSqlClause(), getAliasName(), getNestLevel(), this);\r
41         }\r
42         _inlineQuery.xsetOnClauseInline(false); return _inlineQuery;\r
43     }\r
44     \r
45     /**\r
46      * Prepare on-clause query. <br />\r
47      * {select ... from ... left outer join ${table.name} on ... and abc = [abc] ...}\r
48      * @return On-clause query. (NotNull)\r
49      */\r
50     public ${myConditionInlineQueryClassName} on() {\r
51         if (isBaseQuery(this)) { throw new UnsupportedOperationException("Unsupported onClause of Base Table!"); }\r
52         ${myConditionInlineQueryClassName} inlineQuery = inline(); inlineQuery.xsetOnClauseInline(true); return inlineQuery;\r
53     }\r
54 \r
55     // ===================================================================================\r
56     //                                                                               Query\r
57     //                                                                               =====\r
58 #foreach ($col in $table.columns)\r
59 #set ($tmpJavaName = "${col.JavaName}")\r
60 #set ($tmpUncapitalisedJavaName = "${col.UncapitalisedJavaName}")\r
61 \r
62     protected ${glConditionValueName} _${tmpUncapitalisedJavaName};\r
63     public ${glConditionValueName} get${tmpJavaName}() {\r
64         if (_${tmpUncapitalisedJavaName} == null) { _${tmpUncapitalisedJavaName} = new ${glConditionValueName}(); }\r
65         return _${tmpUncapitalisedJavaName};\r
66     }\r
67     protected ${glConditionValueName} getCValue${tmpJavaName}() { return get${tmpJavaName}(); }\r
68 #if (${col.isJavaNativeStringObject()})\r
69 #if (${col.isSingleKeyForeignKey()})\r
70 #set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
71 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
72 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
73 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
74 \r
75     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
76     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
77     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
78         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
79         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
80         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
81     }\r
82 #end\r
83 #if (${col.hasSingleKeyReferrer()})\r
84 #foreach ($referrer in $col.singleKeyReferrers)\r
85 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
86 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
87 #if (${referrer.isOneToOne()})\r
88 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
89 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
90 #else\r
91 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
92 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
93 #end\r
94 \r
95     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
96     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
97     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
98         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
99         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
100         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
101     }\r
102 #end\r
103 #end\r
104 #if (${col.hasSingleKeyReferrer()})\r
105 #foreach ($referrer in $col.singleKeyReferrers)\r
106 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
107 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
108 #if (${referrer.isOneToOne()})\r
109 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
110 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
111 #else\r
112 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
113 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
114 #end\r
115 \r
116     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
117     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
118     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
119         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
120         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
121         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
122     }\r
123 #end\r
124 #end\r
125 #if (${col.hasSingleKeyReferrer()})\r
126 #foreach ($referrer in $col.singleKeyReferrers)\r
127 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
128 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
129 #if (${referrer.isOneToOne()})\r
130 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
131 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
132 #else\r
133 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
134 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
135 #end\r
136 \r
137     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
138     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
139     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
140         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
141         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
142         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
143     }\r
144 #end\r
145 #end\r
146 #if (${col.hasSingleKeyReferrer()})\r
147 #foreach ($referrer in $col.singleKeyReferrers)\r
148 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
149 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
150 #if (${referrer.isOneToOne()})\r
151 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
152 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
153 #else\r
154 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
155 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
156 #end\r
157 \r
158     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
159     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
160     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
161         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
162         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
163         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
164     }\r
165 #end\r
166 #end\r
167 #if (${col.hasSingleKeyReferrer()})\r
168 #foreach ($referrer in $col.singleKeyReferrers)\r
169 #if (!${referrer.isOneToOne()})\r
170 #set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
171 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
172 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
173 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
174 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
175 \r
176     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
177     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
178     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
179         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
180         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
181         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
182     }\r
183 #end\r
184 #end\r
185 #end\r
186 #end\r
187     #if (${col.isJavaNativeNumberObject()})\r
188       #if (${col.isSingleKeyForeignKey()})\r
189         #set ($relatedCQClassName = "${col.foreignKey.foreignTableExtendedConditionQueryClassName}")\r
190         #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
191         #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${col.foreignKey.foreignPropertyNameInitCap}")\r
192         #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
193 \r
194     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
195     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
196     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
197         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
198         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
199         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
200     }\r
201       #end\r
202 #if (${col.hasSingleKeyReferrer()})\r
203 #foreach ($referrer in $col.singleKeyReferrers)\r
204 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
205 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
206 #if (${referrer.isOneToOne()})\r
207 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
208 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
209 #else\r
210 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_InScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
211 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_InScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
212 #end\r
213 \r
214     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
215     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
216     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
217         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
218         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
219         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
220     }\r
221 #end\r
222 #end\r
223 #if (${col.hasSingleKeyReferrer()})\r
224 #foreach ($referrer in $col.singleKeyReferrers)\r
225 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
226 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
227 #if (${referrer.isOneToOne()})\r
228 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
229 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCapAsOne}")\r
230 #else\r
231 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotInScopeSubQuery_${referrer.referrerPropertyNameInitCap}")\r
232 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotInScopeSubQuery_${referrer.ReferrerPropertyNameInitCap}")\r
233 #end\r
234 \r
235     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
236     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
237     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
238         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
239         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
240         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
241     }\r
242 #end\r
243 #end\r
244 #if (${col.hasSingleKeyReferrer()})\r
245 #foreach ($referrer in $col.singleKeyReferrers)\r
246 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
247 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
248 #if (${referrer.isOneToOne()})\r
249 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
250 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
251 #else\r
252 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
253 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_ExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
254 #end\r
255 \r
256     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
257     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
258     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
259         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
260         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
261         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
262     }\r
263 #end\r
264 #end\r
265 #if (${col.hasSingleKeyReferrer()})\r
266 #foreach ($referrer in $col.singleKeyReferrers)\r
267 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
268 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
269 #if (${referrer.isOneToOne()})\r
270 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
271 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCapAsOne}")\r
272 #else\r
273 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
274 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_NotExistsSubQuery_${referrer.referrerPropertyNameInitCap}")\r
275 #end\r
276 \r
277     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
278     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
279     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
280         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
281         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
282         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
283     }\r
284 #end\r
285 #end\r
286 #if (${col.hasSingleKeyReferrer()})\r
287 #foreach ($referrer in $col.singleKeyReferrers)\r
288 #if (!${referrer.isOneToOne()})\r
289 #set ($relatedCBClassName = "${referrer.referrerTableExtendedConditionBeanClassName}")\r
290 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
291 #set ($subQueryPropertyNameInitCap = "${tmpJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
292 #set ($subQueryPropertyName = "${tmpUncapitalisedJavaName}_DeriveSubQuery_${referrer.referrerPropertyNameInitCap}")\r
293 #set ($subQueryKeepMapGeneric = "String, ${relatedCQClassName}")\r
294 \r
295     protected Map<${subQueryKeepMapGeneric}> _${subQueryPropertyName}Map;\r
296     public Map<${subQueryKeepMapGeneric}> get${subQueryPropertyNameInitCap}() { return _${subQueryPropertyName}Map; }\r
297     public String keep${subQueryPropertyNameInitCap}(${relatedCQClassName} subQuery) {\r
298         if (_${subQueryPropertyName}Map == null) { _${subQueryPropertyName}Map = newLinkedHashMap(); }\r
299         String key = "subQueryMapKey" + (_${subQueryPropertyName}Map.size() + 1);\r
300         _${subQueryPropertyName}Map.put(key, subQuery); return "${subQueryPropertyName}." + key;\r
301     }\r
302 #end\r
303 #end\r
304 #end\r
305 #end\r
306 \r
307     public ${myClassName} addOrderBy_${tmpJavaName}_Asc() { regOBA("${col.name}"); return this; }\r
308     public ${myClassName} addOrderBy_${tmpJavaName}_Desc() { regOBD("${col.name}"); return this; }\r
309 #end\r
310 \r
311     // ===================================================================================\r
312     //                                                           Specified Derived OrderBy\r
313     //                                                           =========================\r
314     public ${myClassName} addSpecifiedDerivedOrderBy_Asc(String aliasName) { registerSpecifiedDerivedOrderBy_Asc(aliasName); return this; }\r
315     public ${myClassName} addSpecifiedDerivedOrderBy_Desc(String aliasName) { registerSpecifiedDerivedOrderBy_Desc(aliasName); return this; }\r
316 \r
317     // ===================================================================================\r
318     //                                                                         Union Query\r
319     //                                                                         ===========\r
320     protected void reflectRelationOnUnionQuery(${glConditionQueryInterfaceName} baseQueryAsSuper, ${glConditionQueryInterfaceName} unionQueryAsSuper) {\r
321 #if ($table.hasForeignKeyOrRefererAsOne())\r
322         ${myConditionQueryClassName} baseQuery = (${myConditionQueryClassName})baseQueryAsSuper;\r
323         ${myConditionQueryClassName} unionQuery = (${myConditionQueryClassName})unionQueryAsSuper;\r
324 #end\r
325 #foreach ($foreignKeys in $table.foreignKeys)\r
326         if (baseQuery.hasConditionQuery${foreignKeys.foreignPropertyNameInitCap}()) {\r
327             unionQuery.query${foreignKeys.foreignPropertyNameInitCap}().reflectRelationOnUnionQuery(baseQuery.query${foreignKeys.foreignPropertyNameInitCap}(), unionQuery.query${foreignKeys.foreignPropertyNameInitCap}());\r
328         }\r
329 #end\r
330 #foreach ($refferer in $table.referrers)\r
331 #if (${refferer.isOneToOne()})\r
332         if (baseQuery.hasConditionQuery${refferer.reffererPropertyNameInitCapAsOne}()) {\r
333             unionQuery.query${refferer.reffererPropertyNameInitCapAsOne}().reflectRelationOnUnionQuery(baseQuery.query${refferer.reffererPropertyNameInitCapAsOne}(), unionQuery.query${refferer.reffererPropertyNameInitCapAsOne}());\r
334         }\r
335 #end\r
336 #end\r
337     }\r
338 \r
339     // ===================================================================================\r
340     //                                                                       Foreign Query\r
341     //                                                                       =============\r
342 #foreach ($foreignKeys in $table.foreignKeys)\r
343 #set ($foreignCQClassName = "${foreignKeys.foreignTableExtendedConditionQueryClassName}")\r
344     \r
345     public ${foreignCQClassName} query${foreignKeys.ForeignPropertyNameInitCap}() {\r
346         return getConditionQuery${foreignKeys.ForeignPropertyNameInitCap}();\r
347     }\r
348     protected ${foreignCQClassName} _conditionQuery${foreignKeys.ForeignPropertyNameInitCap};\r
349     public ${foreignCQClassName} getConditionQuery${foreignKeys.ForeignPropertyNameInitCap}() {\r
350         if (_conditionQuery${foreignKeys.foreignPropertyNameInitCap} == null) {\r
351             _conditionQuery${foreignKeys.foreignPropertyNameInitCap} = createQuery${foreignKeys.foreignPropertyNameInitCap}();\r
352             setupOuterJoin_${foreignKeys.foreignPropertyNameInitCap}();\r
353         }\r
354         return _conditionQuery${foreignKeys.foreignPropertyNameInitCap};\r
355     }\r
356     protected void setupOuterJoin_${foreignKeys.foreignPropertyNameInitCap}() {\r
357         Map<String, String> joinOnMap = newLinkedHashMap();\r
358 #foreach ($columnName in $foreignKeys.LocalColumns)\r
359 #set ($localColumn = $table.getColumn($columnName))\r
360 #set ($foreignColumnName = $foreignKeys.getLocalForeignMapping().get($columnName))\r
361         joinOnMap.put(getRealColumnName("${localColumn.name}"), getConditionQuery${foreignKeys.foreignPropertyNameInitCap}().getRealColumnName("${foreignColumnName}"));\r
362 #end\r
363 #if ($foreignKeys.hasFixedCondition())\r
364         joinOnMap.put("$$fixedCondition$$", prepareFixedCondition("${foreignKeys.fixedCondition}", getRealAliasName(), getConditionQuery${foreignKeys.foreignPropertyNameInitCap}().getRealAliasName()));\r
365 #end\r
366         registerOuterJoin(getConditionQuery${foreignKeys.foreignPropertyNameInitCap}(), joinOnMap);\r
367     }\r
368     protected ${foreignCQClassName} createQuery${foreignKeys.foreignPropertyNameInitCap}() {\r
369         String nrp = resolveNextRelationPath("${table.name}", "${foreignKeys.foreignPropertyName}");\r
370         String jan = resolveJoinAliasName(nrp, getNextNestLevel());\r
371         ${foreignCQClassName} cq = new ${foreignCQClassName}(this, getSqlClause(), jan, getNextNestLevel());\r
372         cq.xsetForeignPropertyName("${foreignKeys.foreignPropertyName}"); cq.xsetRelationPath(nrp); return cq;\r
373     }\r
374     public boolean hasConditionQuery${foreignKeys.ForeignPropertyNameInitCap}() {\r
375         return _conditionQuery${foreignKeys.ForeignPropertyNameInitCap} != null;\r
376     }\r
377 #end\r
378 \r
379 #foreach ($referrer in $table.referrers)\r
380 #set ($relatedCQClassName = "${referrer.referrerTableExtendedConditionQueryClassName}")\r
381 #if (${referrer.isOneToOne()})\r
382 \r
383     public ${relatedCQClassName} query${referrer.referrerPropertyNameInitCapAsOne}() {\r
384         return getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}();\r
385     }\r
386     protected ${relatedCQClassName} _conditionQuery${referrer.referrerPropertyNameInitCapAsOne};\r
387     public ${relatedCQClassName} getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}() {\r
388         if (_conditionQuery${referrer.referrerPropertyNameInitCapAsOne} == null) {\r
389             _conditionQuery${referrer.referrerPropertyNameInitCapAsOne} = createQuery${referrer.referrerPropertyNameInitCapAsOne}();\r
390             setupOuterJoin_${referrer.referrerPropertyNameInitCapAsOne}();\r
391         }\r
392         return _conditionQuery${referrer.referrerPropertyNameInitCapAsOne};\r
393     }\r
394     protected void setupOuterJoin_${referrer.referrerPropertyNameInitCapAsOne}() {\r
395         Map<String, String> joinOnMap = newLinkedHashMap();\r
396 #foreach ($columnName in $referrer.foreignColumns)\r
397 #set ($foreignColumn = $table.getColumn($columnName))\r
398 #set ($referrerColumnName = $referrer.getForeignLocalMapping().get($columnName))\r
399         joinOnMap.put(getRealColumnName("${foreignColumn.name}"), getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}().getRealColumnName("${referrerColumnName}"));\r
400 #end\r
401 #if ($referrer.hasFixedCondition())\r
402         joinOnMap.put("$$fixedCondition$$", prepareFixedCondition("${referrer.fixedCondition}", getRealAliasName(), getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}().getRealAliasName()));\r
403 #end\r
404         registerOuterJoin(getConditionQuery${referrer.referrerPropertyNameInitCapAsOne}(), joinOnMap);\r
405     }\r
406     protected ${relatedCQClassName} createQuery${referrer.referrerPropertyNameInitCapAsOne}() {\r
407         String nrp = resolveNextRelationPath("${table.name}", "${referrer.referrerPropertyNameAsOne}");\r
408         String jan = resolveJoinAliasName(nrp, getNextNestLevel());\r
409         ${relatedCQClassName} cq = new ${relatedCQClassName}(this, getSqlClause(), jan, getNextNestLevel());\r
410         cq.xsetForeignPropertyName("${referrer.referrerPropertyNameAsOne}"); cq.xsetRelationPath(nrp); return cq;\r
411     }\r
412     public boolean hasConditionQuery${referrer.referrerPropertyNameInitCapAsOne}() {\r
413         return _conditionQuery${referrer.referrerPropertyNameInitCapAsOne} != null;\r
414     }\r
415 #end\r
416 #end\r
417 \r
418     protected String getConditionQueryClassNameInternally() { return ${myConditionQueryClassName}.class.getName(); }\r
419     protected String getMapClassNameInternally() { return Map.class.getName(); }\r
420 }\r