Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.compat.cdc / org.gvsig.fmap.dal / org.gvsig.fmap.dal.api / src / main / java / org / gvsig / fmap / dal / SQLBuilder.java @ 44644

History | View | Annotate | Download (12.8 KB)

1 43020 jjdelcerro
package org.gvsig.fmap.dal;
2
3
import java.util.List;
4 43114 jjdelcerro
import org.cresques.cts.IProjection;
5 44198 jjdelcerro
import org.gvsig.expressionevaluator.ExpressionBuilder.Parameter;
6 44042 jjdelcerro
import org.gvsig.expressionevaluator.ExpressionBuilder.Value;
7 44198 jjdelcerro
import org.gvsig.expressionevaluator.ExpressionBuilder.Variable;
8
import org.gvsig.expressionevaluator.Formatter;
9 44644 jjdelcerro
import org.gvsig.expressionevaluator.GeometryExpressionBuilder;
10
import org.gvsig.expressionevaluator.GeometryExpressionBuilderHelper.GeometrySupportType;
11 43739 jjdelcerro
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
12 43020 jjdelcerro
13 44198 jjdelcerro
public interface SQLBuilder {
14
15
    public static final String FEATURE_ATTRIBUTE_DESCRIPTOR = "FeatureAttributeDescriptor";
16
17 43020 jjdelcerro
    public enum Privilege {
18
        SELECT,
19
        INSERT,
20
        UPDATE,
21
        DELETE,
22
        TRUNCATE,
23
        REFERENCE,
24
        TRIGGER,
25
        ALL
26
    };
27
28 44198 jjdelcerro
    public interface ColumnDescriptor {
29 43020 jjdelcerro
30 44042 jjdelcerro
        public String getName();
31 44198 jjdelcerro
32 44042 jjdelcerro
        public int getType();
33 44198 jjdelcerro
34 44042 jjdelcerro
        public int getSize();
35 44198 jjdelcerro
36 44042 jjdelcerro
        public int getPrecision();
37 44198 jjdelcerro
38 44042 jjdelcerro
        public boolean isPrimaryKey();
39 44198 jjdelcerro
40 44042 jjdelcerro
        public boolean isIndexed();
41 44198 jjdelcerro
42 44042 jjdelcerro
        public boolean isAutomatic();
43 44198 jjdelcerro
44 44042 jjdelcerro
        boolean allowNulls();
45 44198 jjdelcerro
46 44042 jjdelcerro
        public Object getDefaultValue();
47 44198 jjdelcerro
48 44042 jjdelcerro
        public int getGeometryType();
49 44198 jjdelcerro
50 44042 jjdelcerro
        public int getGeometrySubtype();
51 44198 jjdelcerro
52 44042 jjdelcerro
        public Object getGeometrySRSId();
53 44198 jjdelcerro
54 44042 jjdelcerro
        public boolean isGeometry();
55 44198 jjdelcerro
56 44042 jjdelcerro
        public DataStoreParameters getStoreParameters();
57 44198 jjdelcerro
58 44042 jjdelcerro
        public void setName(String name);
59 44198 jjdelcerro
60 44042 jjdelcerro
        public void setType(int type);
61 44198 jjdelcerro
62 44042 jjdelcerro
        public void setSize(int size);
63 44198 jjdelcerro
64 44042 jjdelcerro
        public void setPrecision(int precision);
65 44198 jjdelcerro
66 44042 jjdelcerro
        public void setIsPrimaryKey(boolean isPk);
67 44198 jjdelcerro
68 44042 jjdelcerro
        public void setIsAutomatic(boolean isAutomatic);
69 44198 jjdelcerro
70 44042 jjdelcerro
        public void setAllowNulls(boolean allowNulls);
71 44198 jjdelcerro
72 44042 jjdelcerro
        public void setDefaultValue(Object defaultValue);
73 44198 jjdelcerro
74 44042 jjdelcerro
        public void setGeometryType(int geom_type);
75 44198 jjdelcerro
76 44042 jjdelcerro
        public void setGeometrySubtype(int geom_subtype);
77 44198 jjdelcerro
78 44042 jjdelcerro
        public void setGeometrySRSId(Object geom_srsid);
79
    }
80 44198 jjdelcerro
81
    public interface StatementPart extends Value {
82
83 44042 jjdelcerro
    }
84 44198 jjdelcerro
85
    public interface Statement extends StatementPart {
86
87
    }
88 44376 jjdelcerro
89
    public interface Column extends Variable {
90
        public TableNameBuilder table();
91
        public TableNameBuilder table(TableNameBuilder table);
92
    }
93 44198 jjdelcerro
94
    public interface TableNameBuilder extends StatementPart {
95
96 43020 jjdelcerro
        public TableNameBuilder database(String name);
97 44198 jjdelcerro
98 43020 jjdelcerro
        public TableNameBuilder schema(String name);
99 44198 jjdelcerro
100 43020 jjdelcerro
        public TableNameBuilder name(String name);
101 44198 jjdelcerro
102 43020 jjdelcerro
        public String getDatabase();
103 44198 jjdelcerro
104 43020 jjdelcerro
        public String getSchema();
105 44198 jjdelcerro
106 43020 jjdelcerro
        public String getName();
107 44198 jjdelcerro
108 43020 jjdelcerro
        public boolean has_database();
109 44198 jjdelcerro
110 43020 jjdelcerro
        public boolean has_schema();
111
    }
112
113 44198 jjdelcerro
    public interface CountBuilder extends StatementPart {
114
115 43020 jjdelcerro
        public CountBuilder all();
116 44198 jjdelcerro
117 43020 jjdelcerro
        public CountBuilder column(Value value);
118 44198 jjdelcerro
119 43020 jjdelcerro
        public CountBuilder distinct();
120
    }
121 44198 jjdelcerro
122
    public interface SelectColumnBuilder extends StatementPart {
123
124 43020 jjdelcerro
        public SelectColumnBuilder name(String name);
125 44198 jjdelcerro
126 44376 jjdelcerro
        public SelectColumnBuilder name(TableNameBuilder table, String name);
127
128 43020 jjdelcerro
        public SelectColumnBuilder value(Value value);
129 44198 jjdelcerro
130 43020 jjdelcerro
        public SelectColumnBuilder as(String alias);
131 44198 jjdelcerro
132 43020 jjdelcerro
        public SelectColumnBuilder as_geometry();
133 44198 jjdelcerro
134 43020 jjdelcerro
        public SelectColumnBuilder all();
135 44198 jjdelcerro
136 43020 jjdelcerro
        public String getName();
137 44198 jjdelcerro
138 43020 jjdelcerro
        public String getAlias();
139 44198 jjdelcerro
140 43020 jjdelcerro
        public String getValue();
141
    }
142 44198 jjdelcerro
143
    public interface InsertColumnBuilder extends StatementPart {
144
145 43020 jjdelcerro
        public InsertColumnBuilder name(String name);
146 44198 jjdelcerro
147 43020 jjdelcerro
        public InsertColumnBuilder with_value(Value value);
148 44198 jjdelcerro
149 43020 jjdelcerro
        public String getName();
150 44198 jjdelcerro
151 43020 jjdelcerro
        public Value getValue();
152
    }
153 44198 jjdelcerro
154 43020 jjdelcerro
    public interface UpdateColumnBuilder extends InsertColumnBuilder {
155 44198 jjdelcerro
156 43020 jjdelcerro
        @Override
157
        public UpdateColumnBuilder name(String name);
158 44198 jjdelcerro
159 43020 jjdelcerro
        @Override
160
        public UpdateColumnBuilder with_value(Value value);
161 44198 jjdelcerro
162 43020 jjdelcerro
        @Override
163
        public String getName();
164 44198 jjdelcerro
165 43020 jjdelcerro
        @Override
166
        public Value getValue();
167
    }
168 44198 jjdelcerro
169
    public interface FromBuilder extends StatementPart {
170
171 43020 jjdelcerro
        public TableNameBuilder table();
172 44198 jjdelcerro
173 43020 jjdelcerro
        public FromBuilder subquery(String subquery);
174 44198 jjdelcerro
175 43020 jjdelcerro
        public FromBuilder custom(String passthrough);
176 44376 jjdelcerro
177
        public FromBuilder left_join(TableNameBuilder table, Value expression);
178 43020 jjdelcerro
    }
179
180 44198 jjdelcerro
    public interface OrderByBuilder extends StatementPart {
181
182 43020 jjdelcerro
        public OrderByBuilder column(String name);
183 44198 jjdelcerro
184 43020 jjdelcerro
        public OrderByBuilder ascending(boolean asc);
185 44198 jjdelcerro
186 43020 jjdelcerro
        public OrderByBuilder ascending();
187 44198 jjdelcerro
188 43020 jjdelcerro
        public OrderByBuilder descending();
189 44198 jjdelcerro
190 43020 jjdelcerro
        public OrderByBuilder custom(String order);
191
    }
192 44198 jjdelcerro
193 43020 jjdelcerro
    public interface SelectBuilder extends Statement {
194 44198 jjdelcerro
195 43020 jjdelcerro
        public SelectColumnBuilder column();
196 44385 jjdelcerro
197
        public SelectBuilder remove_all_columns();
198 44198 jjdelcerro
199 43020 jjdelcerro
        public FromBuilder from();
200 44198 jjdelcerro
201 44644 jjdelcerro
        public GeometryExpressionBuilder where();
202 44198 jjdelcerro
203 43020 jjdelcerro
        public OrderByBuilder order_by();
204 44198 jjdelcerro
205 44349 jjdelcerro
        public SelectBuilder group_by(Variable... column);
206
207 43020 jjdelcerro
        public SelectBuilder distinct();
208 44198 jjdelcerro
209 43020 jjdelcerro
        public SelectBuilder limit(long limit);
210 44198 jjdelcerro
211 44058 jjdelcerro
        public SelectBuilder limit(Long limit);
212 44198 jjdelcerro
213 43093 jjdelcerro
        /**
214 44198 jjdelcerro
         * Specifies an offset to be applied to the SQL statement. Only an
215
         * offset can be applied if an order has been specified. Otherwise an
216
         * IllegalStateException exception will be thrown when constructing the
217
         * SQL statement invoking the toString method.
218
         *
219 43093 jjdelcerro
         * @param offset
220
         * @return this SelectBuilder
221
         */
222 43020 jjdelcerro
        public SelectBuilder offset(long offset);
223 44198 jjdelcerro
224 43020 jjdelcerro
        public boolean has_column(String name);
225 44198 jjdelcerro
226 43020 jjdelcerro
        public boolean has_where();
227 44198 jjdelcerro
228 43020 jjdelcerro
        public boolean has_from();
229 44198 jjdelcerro
230 43020 jjdelcerro
        public boolean has_order_by();
231 44198 jjdelcerro
232 44349 jjdelcerro
        public boolean has_group_by();
233
234 43020 jjdelcerro
        public boolean has_limit();
235 44198 jjdelcerro
236 43020 jjdelcerro
        public boolean has_offset();
237 43093 jjdelcerro
238
        /**
239 44198 jjdelcerro
         * Constructs the SQL statement. If the values associated with the SQL
240
         * statement are not valid an IllegalStateException exception is thrown.
241
         *
242 43093 jjdelcerro
         * @return the SQL select statement.
243 44198 jjdelcerro
         * @throws IllegalStateException if the values of select statement are
244
         * not valids.
245 43093 jjdelcerro
         */
246
        @Override
247
        public String toString();
248 44198 jjdelcerro
249 43020 jjdelcerro
    }
250 44198 jjdelcerro
251 43020 jjdelcerro
    public interface UpdateBuilder extends Statement {
252 44198 jjdelcerro
253 43020 jjdelcerro
        public TableNameBuilder table();
254 44198 jjdelcerro
255 43020 jjdelcerro
        public UpdateColumnBuilder column();
256 44198 jjdelcerro
257 44644 jjdelcerro
        public GeometryExpressionBuilder where();
258 44198 jjdelcerro
259 43020 jjdelcerro
        public boolean has_where();
260
    }
261 44198 jjdelcerro
262 43020 jjdelcerro
    public interface InsertBuilder extends Statement {
263 44198 jjdelcerro
264 43020 jjdelcerro
        public TableNameBuilder table();
265 44198 jjdelcerro
266 43020 jjdelcerro
        public InsertColumnBuilder column();
267
    }
268 44198 jjdelcerro
269 43020 jjdelcerro
    public interface DeleteBuilder extends Statement {
270 44198 jjdelcerro
271 43020 jjdelcerro
        public TableNameBuilder table();
272 44198 jjdelcerro
273 44644 jjdelcerro
        public GeometryExpressionBuilder where();
274 44198 jjdelcerro
275 43020 jjdelcerro
        public boolean has_where();
276
    }
277 44198 jjdelcerro
278 43020 jjdelcerro
    public interface AlterTableBuilder extends Statement {
279 44198 jjdelcerro
280 43020 jjdelcerro
        public TableNameBuilder table();
281 44198 jjdelcerro
282 43020 jjdelcerro
        public AlterTableBuilder drop_column(String columnName);
283 44198 jjdelcerro
284 43739 jjdelcerro
        public AlterTableBuilder add_column(FeatureAttributeDescriptor fad);
285 44198 jjdelcerro
286
        public AlterTableBuilder add_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean isIndexed, boolean allowNulls, boolean isAutomatic, Object defaultValue);
287
288 43650 jjdelcerro
        public AlterTableBuilder add_geometry_column(String columnName, int geom_type, int geom_subtype, IProjection proj, boolean isIndexed, boolean allowNulls);
289 44198 jjdelcerro
290 43687 jjdelcerro
        public AlterTableBuilder add_geometry_column(String columnName, int geom_type, int geom_subtype, Object srsdbcode, boolean isIndexed, boolean allowNulls);
291 44198 jjdelcerro
292 43739 jjdelcerro
        public AlterTableBuilder alter_column(FeatureAttributeDescriptor fad);
293 44198 jjdelcerro
294 43355 jjdelcerro
        public AlterTableBuilder alter_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean isIndexed, boolean allowNulls, boolean isAutomatic, Object defaultValue);
295 44198 jjdelcerro
296 43650 jjdelcerro
        public AlterTableBuilder alter_geometry_column(String columnName, int geom_type, int geom_subtype, IProjection proj, boolean isIndexed, boolean allowNulls);
297 44198 jjdelcerro
298 43687 jjdelcerro
        public AlterTableBuilder alter_geometry_column(String columnName, int geom_type, int geom_subtype, Object srsdbcode, boolean isIndexed, boolean allowNulls);
299 44198 jjdelcerro
300 43020 jjdelcerro
        public AlterTableBuilder rename_column(String source, String target);
301 44198 jjdelcerro
302 43687 jjdelcerro
        public boolean isEmpty();
303 44198 jjdelcerro
304 43020 jjdelcerro
        public List<String> toStrings();
305 44198 jjdelcerro
306
        public List<String> toStrings(Formatter formatter);
307 43020 jjdelcerro
    }
308 44198 jjdelcerro
309 43020 jjdelcerro
    public interface CreateTableBuilder extends Statement {
310 44198 jjdelcerro
311 43020 jjdelcerro
        public TableNameBuilder table();
312 44198 jjdelcerro
313 43739 jjdelcerro
        public CreateTableBuilder add_column(FeatureAttributeDescriptor fad);
314 44198 jjdelcerro
315 43355 jjdelcerro
        public CreateTableBuilder add_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean isIndexed, boolean allowNulls, boolean isAutomatic, Object defaultValue);
316 44198 jjdelcerro
317 43355 jjdelcerro
        public CreateTableBuilder add_geometry_column(String columnName, int geom_type, int geom_subtype, IProjection proj, boolean isIndexed, boolean allowNulls);
318 44198 jjdelcerro
319 43687 jjdelcerro
        public CreateTableBuilder add_geometry_column(String columnName, int geom_type, int geom_subtype, Object srsdbcode, boolean isIndexed, boolean allowNulls);
320 44198 jjdelcerro
321 43739 jjdelcerro
        public ColumnDescriptor getColumnDescriptor(String columnName);
322 44198 jjdelcerro
323 43020 jjdelcerro
        public List<String> toStrings();
324 44198 jjdelcerro
325
        public List<String> toStrings(Formatter formatter);
326 43020 jjdelcerro
    }
327 44198 jjdelcerro
328 43020 jjdelcerro
    public interface UpdateTableStatisticsBuilder extends Statement {
329 44198 jjdelcerro
330 43020 jjdelcerro
        public TableNameBuilder table();
331 44198 jjdelcerro
332 43020 jjdelcerro
        public List<String> toStrings();
333 44198 jjdelcerro
334
        public List<String> toStrings(Formatter formatter);
335 43020 jjdelcerro
    }
336 44198 jjdelcerro
337
    public interface GrantRoleBuilder extends StatementPart {
338
339 43020 jjdelcerro
        public GrantRoleBuilder privilege(Privilege privilege);
340 44198 jjdelcerro
341 43020 jjdelcerro
        public GrantRoleBuilder select();
342 44198 jjdelcerro
343 43020 jjdelcerro
        public GrantRoleBuilder insert();
344 44198 jjdelcerro
345 43020 jjdelcerro
        public GrantRoleBuilder delete();
346 44198 jjdelcerro
347 43020 jjdelcerro
        public GrantRoleBuilder truncate();
348 44198 jjdelcerro
349 43020 jjdelcerro
        public GrantRoleBuilder reference();
350 44198 jjdelcerro
351 43020 jjdelcerro
        public GrantRoleBuilder update();
352 44198 jjdelcerro
353 43020 jjdelcerro
        public GrantRoleBuilder trigger();
354 44198 jjdelcerro
355 43020 jjdelcerro
        public GrantRoleBuilder all();
356
    }
357 44198 jjdelcerro
358 43020 jjdelcerro
    public interface GrantBuilder extends Statement {
359 44198 jjdelcerro
360 43020 jjdelcerro
        public TableNameBuilder table();
361 44198 jjdelcerro
362
        public GrantRoleBuilder role(String name);
363
364 43020 jjdelcerro
        public List<String> toStrings();
365 44198 jjdelcerro
366
        public List<String> toStrings(Formatter formatter);
367 43020 jjdelcerro
    }
368 44198 jjdelcerro
369 43020 jjdelcerro
    public interface DropTableBuilder extends Statement {
370 44198 jjdelcerro
371 43020 jjdelcerro
        public TableNameBuilder table();
372 44198 jjdelcerro
373 43020 jjdelcerro
        public List<String> toStrings();
374 44198 jjdelcerro
375
        public List<String> toStrings(Formatter formatter);
376 43020 jjdelcerro
    }
377 44198 jjdelcerro
378 43687 jjdelcerro
    public interface CreateIndexBuilder extends Statement {
379 44198 jjdelcerro
380 43687 jjdelcerro
        public CreateIndexBuilder if_not_exist();
381 44198 jjdelcerro
382 43687 jjdelcerro
        public CreateIndexBuilder unique();
383 44198 jjdelcerro
384 43687 jjdelcerro
        public CreateIndexBuilder name(String name);
385 44198 jjdelcerro
386 43687 jjdelcerro
        public CreateIndexBuilder spatial();
387 44198 jjdelcerro
388 43687 jjdelcerro
        public CreateIndexBuilder column(String name);
389 44198 jjdelcerro
390 43687 jjdelcerro
        public TableNameBuilder table();
391 44198 jjdelcerro
392 43687 jjdelcerro
        public List<String> toStrings();
393 44198 jjdelcerro
394
        public List<String> toStrings(Formatter formatter);
395 43687 jjdelcerro
    }
396 43020 jjdelcerro
397 44198 jjdelcerro
    public String default_schema();
398 44042 jjdelcerro
399 44198 jjdelcerro
    public boolean support_schemas();
400 44042 jjdelcerro
401 44198 jjdelcerro
    public boolean has_spatial_functions();
402 43020 jjdelcerro
403 44198 jjdelcerro
    public GeometrySupportType geometry_support_type();
404
405 43650 jjdelcerro
    public String sqltype(int dataType, int p, int s, int geomType, int geomSubtype);
406 44198 jjdelcerro
407 43114 jjdelcerro
    public Object sqlgeometrytype(int type, int subtype);
408 43020 jjdelcerro
409 43114 jjdelcerro
    public Object sqlgeometrydimension(int type, int subtype);
410 44198 jjdelcerro
411
    public Object srs_id(IProjection projection);
412
413
    public String toString(Formatter formatter);
414
415
    public List<Variable> variables();
416
417
    public List<String> variables_names();
418
419
    public List<Parameter> parameters();
420
421
    public List<String> parameters_names();
422
423 44329 jjdelcerro
    public TableNameBuilder table_name();
424
425
    public TableNameBuilder createTableNameBuilder();
426
427 43020 jjdelcerro
    public SelectBuilder select();
428 44198 jjdelcerro
429 43020 jjdelcerro
    public UpdateBuilder update();
430
431
    public InsertBuilder insert();
432 44198 jjdelcerro
433 43020 jjdelcerro
    public DeleteBuilder delete();
434 44198 jjdelcerro
435 43020 jjdelcerro
    public AlterTableBuilder alter_table();
436
437
    public CreateTableBuilder create_table();
438 44198 jjdelcerro
439 43687 jjdelcerro
    public CreateIndexBuilder create_index();
440 43020 jjdelcerro
441
    public GrantBuilder grant();
442
443
    public DropTableBuilder drop_table();
444
445
    public UpdateTableStatisticsBuilder update_table_statistics();
446
447
    public CountBuilder count();
448
449 44644 jjdelcerro
    public GeometryExpressionBuilder expression();
450 44042 jjdelcerro
451 44198 jjdelcerro
    public String as_identifier(String id);
452
453
    public String as_string(String s);
454
455
    public String as_string(byte[] s);
456
457
    public String as_string(boolean value);
458
459
    public String as_string(Number value);
460
461
    public String as_string(Object value);
462 44376 jjdelcerro
463
    public Column column(String name);
464 44198 jjdelcerro
465 44376 jjdelcerro
    public Column column(TableNameBuilder table, String name);
466
467 44198 jjdelcerro
    public void setProperties(Class classToApply, Object... values);
468
469 43020 jjdelcerro
}