1 #set ($myClassName = "${glSqlClauseInterfaceName}")
\r
4 using System.Collections;
\r
5 using ${glPackageBaseCommonCKey};
\r
6 using ${glPackageBaseCommonCValue};
\r
7 using ${glPackageBaseCommonCOption};
\r
8 using ${glPackageBaseCommonJavaLike};
\r
10 namespace ${glPackageBaseCommonSqlClause} {
\r
13 public interface ${glSqlClauseInterfaceName} {
\r
15 // =====================================================================================
\r
19 String getClausePKOnly();
\r
20 String getClauseFromWhereWithUnionTemplate();
\r
21 String getClauseFromWhereWithWhereUnionTemplate();
\r
23 // =====================================================================================
\r
26 String getSelectClause();
\r
27 String getSelectClausePKOnly();
\r
28 String getSelectHint();
\r
29 String getIncludedSelectColumnClause();
\r
30 String getFromClause();
\r
31 String getFromBaseTableHint();
\r
32 String getFromHint();
\r
33 String getWhereClause();
\r
34 String getOrderByClause();
\r
35 String getSqlSuffix();
\r
37 // ===================================================================================
\r
40 void copyIncludedSelectColumn(${glSqlClauseInterfaceName} sqlClause);
\r
42 // ===================================================================================
\r
43 // SelectedSelectColumn
\r
44 // ====================
\r
45 void registerSelectedSelectColumn(String foreignTableAliasName
\r
46 , String localTableName
\r
47 , String foreignPropertyName
\r
48 , String localRelationPath);
\r
50 // ===================================================================================
\r
51 // IncludedSelectColumn
\r
52 // ====================
\r
53 void ignoreIncludedSelectColumn();
\r
54 void makeIncludedSelectColumnEffective();
\r
55 void registerIncludedSelectColumn(String aliasName, String realColumnName);
\r
57 // ===================================================================================
\r
60 void registerOuterJoin(String joinTableName, String aliasName, Map<String, String> joinOnMap);
\r
62 // ===================================================================================
\r
65 void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value);
\r
66 void registerWhereClause(String columnFullName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option);
\r
67 void registerWhereClause(String clause);
\r
68 void exchangeFirstWhereClauseForLastOne();
\r
70 // ===================================================================================
\r
73 void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value);
\r
74 void registerBaseTableInlineWhereClause(String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option);
\r
75 void registerBaseTableInlineWhereClause(String value);
\r
76 void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, bool onClauseInline);
\r
77 void registerOuterJoinInlineWhereClause(String aliasName, String columnName, ${glConditionKeyName} key, ${glConditionValueName} value, ${glConditionOptionInterfaceName} option, bool onClauseInline);
\r
78 void registerOuterJoinInlineWhereClause(String aliasName, String value, bool onClauseInline);
\r
80 // ===================================================================================
\r
81 // AdditionalConditionAsOr
\r
82 // =======================
\r
83 void makeAdditionalConditionAsOrEffective();
\r
84 void ignoreAdditionalConditionAsOr();
\r
86 // ===================================================================================
\r
89 ${glOrderByClauseName} getSqlComponentOfOrderByClause();
\r
90 ${myClassName} clearOrderBy();
\r
91 ${myClassName} ignoreOrderBy();
\r
92 ${myClassName} makeOrderByEffective();
\r
95 * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)
\r
96 * @param registeredOrderByProperty Registered-order-by-property. ([table-name].[column-name]) (Nullable)
\r
97 * @param ascOrDesc Is it ascend or descend?
\r
99 void registerOrderBy(String orderByProperty, String registeredOrderByProperty, bool ascOrDesc);
\r
102 * @param orderByProperty Order-by-property. 'aliasName.columnName/aliasName.columnName/...' (NotNull)
\r
103 * @param registeredOrderByProperty Registered-order-by-property. ([table-name].[column-name]) (Nullable)
\r
104 * @param ascOrDesc Is it ascend or descend?
\r
106 void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, String registeredOrderByProperty, bool ascOrDesc);
\r
108 void addNullsFirstToPreviousOrderBy();
\r
109 void addNullsLastToPreviousOrderBy();
\r
111 // ===================================================================================
\r
114 void registerUnionQuery(String unionClause, bool unionAll);
\r
116 // ===================================================================================
\r
119 ${myClassName} fetchFirst(int fetchSize);
\r
120 ${myClassName} fetchScope(int fetchStartIndex, int fetchSize);
\r
121 ${myClassName} fetchPage(int fetchPageNumber);
\r
122 int getFetchStartIndex();
\r
123 int getFetchSize();
\r
124 int getFetchPageNumber();
\r
125 int getPageStartIndex();
\r
126 int getPageEndIndex();
\r
127 bool isFetchScopeEffective();
\r
128 ${myClassName} ignoreFetchScope();
\r
129 ${myClassName} makeFetchScopeEffective();
\r
130 bool isFetchStartIndexSupported();
\r
131 bool isFetchSizeSupported();
\r
133 // ===================================================================================
\r
136 bool isFetchNarrowingEffective();
\r
137 int getFetchNarrowingSkipStartIndex();
\r
138 int getFetchNarrowingLoopCount();
\r
140 // ===================================================================================
\r
143 ${myClassName} lockForUpdate();
\r
145 // ===================================================================================
\r
148 String resolveJoinAliasName(String relationPath, int cqNestNo);
\r
149 String resolveNestLevelExpression(String name, int cqNestNo);
\r
150 int resolveRelationNo(String baseTableName, String foreignPropertyName);
\r
152 // ===================================================================================
\r
153 // Table Alias Info
\r
154 // ================
\r
155 String getLocalTableAliasName();
\r
156 String getForeignTableAliasPrefix();
\r
158 // ===================================================================================
\r
161 String getWhereClauseMark();
\r
162 String getWhereFirstConditionMark();
\r
163 String getUnionSelectClauseMark();
\r
164 String getUnionWhereClauseMark();
\r
165 String getUnionWhereFirstConditionMark();
\r
167 // =====================================================================================
\r
168 // Where Clause Simple Filter
\r
169 // ==========================
\r
170 // void addWhereClauseSimpleFilter(${glWhereClauseSimpleFilterInterfaceName} whereClauseSimpleFilter);
\r
172 // =====================================================================================
\r
173 // Selected Foreign Info
\r
174 // =====================
\r
175 bool isSelectedForeignInfoEmpty();
\r
176 bool hasSelectedForeignInfo(String relationPath);
\r
177 void registerSelectedForeignInfo(String relationPath, String foreignPropertyName);
\r
179 // ===================================================================================
\r
182 bool isFormatClauseEffective();
\r
183 void makeFormatClauseEffective();
\r
185 // ===================================================================================
\r
186 // Sub Query Indent
\r
187 // ================
\r
188 String resolveSubQueryBeginMark(String subQueryIdentity);
\r
189 String resolveSubQueryEndMark(String subQueryIdentity);
\r
190 String filterSubQueryIndent(String sql);
\r
193 // ===================================================================================
\r
196 void specifySelectColumn(String tableAliasName, String columnName);
\r
197 void specifyDeriveSubQuery(String aliasName, String deriveSubQuery);
\r
198 bool hasSpecifiedDeriveSubQuery(String aliasName);
\r
199 String getSpecifiedColumnNameAsOne();
\r
200 void clearSpecifiedSelectColumn();
\r
203 // ===================================================================================
\r
206 String getClauseQueryUpdate(Map<String, String> columnParameterMap);
\r
207 String getClauseQueryDelete();
\r