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 @ 46105

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