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

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