OSDN Git Service

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