OSDN Git Service

DBFlute-0.9.3に更新
[ea2ddl/ea2ddl.git] / ea2ddl-gen / dbflute / templates / om / csharp / allcommon / cbean / sqlclause / SqlClause.vmnet
1 #set ($myClassName = "${glSqlClauseInterfaceName}")\r
2 \r
3 using System;\r
4 using System.Collections;\r
5 using ${glPackageBaseCommonCKey};\r
6 using ${glPackageBaseCommonCValue};\r
7 using ${glPackageBaseCommonCOption};\r
8 using ${glPackageBaseCommonJavaLike};\r
9 \r
10 namespace ${glPackageBaseCommonSqlClause} {\r
11 \r
12 // JavaLike\r
13 public interface ${glSqlClauseInterfaceName} {\r
14 \r
15     // =====================================================================================\r
16     //                                                                                Clause\r
17     //                                                                                ======\r
18     String getClause();\r
19         String getClausePKOnly();\r
20     String getClauseFromWhereWithUnionTemplate();\r
21     String getClauseFromWhereWithWhereUnionTemplate();\r
22 \r
23     // =====================================================================================\r
24     //                                                                          Clause Parts\r
25     //                                                                          ============\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
36 \r
37     // ===================================================================================\r
38     //                                                                          Copy Parts\r
39     //                                                                          ==========\r
40     void copyIncludedSelectColumn(${glSqlClauseInterfaceName} sqlClause);\r
41 \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
49         \r
50     // ===================================================================================\r
51     //                                                                IncludedSelectColumn\r
52     //                                                                ====================\r
53     void ignoreIncludedSelectColumn();\r
54     void makeIncludedSelectColumnEffective();\r
55     void registerIncludedSelectColumn(String aliasName, String realColumnName);\r
56 \r
57     // ===================================================================================\r
58     //                                                                           OuterJoin\r
59     //                                                                           =========\r
60     void registerOuterJoin(String joinTableName, String aliasName, Map<String, String> joinOnMap);\r
61 \r
62     // ===================================================================================\r
63     //                                                                               Where\r
64     //                                                                               =====\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
69 \r
70     // ===================================================================================\r
71     //                                                                         InlineWhere\r
72     //                                                                         ===========\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
79 \r
80     // ===================================================================================\r
81     //                                                             AdditionalConditionAsOr\r
82     //                                                             =======================\r
83     void makeAdditionalConditionAsOrEffective();\r
84     void ignoreAdditionalConditionAsOr();\r
85 \r
86     // ===================================================================================\r
87     //                                                                             OrderBy\r
88     //                                                                             =======\r
89     ${glOrderByClauseName} getSqlComponentOfOrderByClause();\r
90     ${myClassName} clearOrderBy();\r
91     ${myClassName} ignoreOrderBy();\r
92     ${myClassName} makeOrderByEffective();\r
93         \r
94     /**\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
98      */\r
99     void registerOrderBy(String orderByProperty, String registeredOrderByProperty, bool ascOrDesc);\r
100         \r
101     /**\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
105      */\r
106     void reverseOrderBy_Or_OverrideOrderBy(String orderByProperty, String registeredOrderByProperty, bool ascOrDesc);\r
107 \r
108         void addNullsFirstToPreviousOrderBy();\r
109         void addNullsLastToPreviousOrderBy();\r
110         \r
111     // ===================================================================================\r
112     //                                                                               Union\r
113     //                                                                               =====\r
114     void registerUnionQuery(String unionClause, bool unionAll);\r
115 \r
116     // ===================================================================================\r
117     //                                                                          FetchScope\r
118     //                                                                          ==========\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
132 \r
133     // ===================================================================================\r
134     //                                                                     Fetch Narrowing\r
135     //                                                                     ===============\r
136     bool isFetchNarrowingEffective();\r
137     int getFetchNarrowingSkipStartIndex();\r
138     int getFetchNarrowingLoopCount();\r
139 \r
140     // ===================================================================================\r
141     //                                                                                Lock\r
142     //                                                                                ====\r
143     ${myClassName} lockForUpdate();\r
144 \r
145     // ===================================================================================\r
146     //                                                                            Resolver\r
147     //                                                                            ========\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
151 \r
152         // ===================================================================================\r
153     //                                                                    Table Alias Info\r
154     //                                                                    ================\r
155         String getLocalTableAliasName();\r
156         String getForeignTableAliasPrefix();\r
157 \r
158         // ===================================================================================\r
159     //                                                                       Template Mark\r
160     //                                                                       =============\r
161         String getWhereClauseMark();\r
162         String getWhereFirstConditionMark();\r
163         String getUnionSelectClauseMark();\r
164         String getUnionWhereClauseMark();\r
165         String getUnionWhereFirstConditionMark();\r
166         \r
167     // =====================================================================================\r
168     //                                                            Where Clause Simple Filter\r
169     //                                                            ==========================\r
170     // void addWhereClauseSimpleFilter(${glWhereClauseSimpleFilterInterfaceName} whereClauseSimpleFilter);\r
171         \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
178         \r
179     // ===================================================================================\r
180     //                                                                       Format Clause\r
181     //                                                                       =============\r
182         bool isFormatClauseEffective();\r
183     void makeFormatClauseEffective();\r
184         \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
191 \r
192     // [DBFlute-0.7.4]\r
193     // ===================================================================================\r
194     //                                                                       Specification\r
195     //                                                                       =============\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
201     \r
202     // [DBFlute-0.7.9]\r
203     // ===================================================================================\r
204     //                                                                        Query Update\r
205     //                                                                        ============\r
206     String getClauseQueryUpdate(Map<String, String> columnParameterMap);\r
207     String getClauseQueryDelete();\r
208 }\r
209 \r
210 }