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

History | View | Annotate | Download (10.1 KB)

1
package org.gvsig.fmap.dal;
2

    
3
import java.util.List;
4

    
5
public interface SQLBuilder extends ExpressionBuilder {
6
    
7
    public enum Privilege {
8
        SELECT,
9
        INSERT,
10
        UPDATE,
11
        DELETE,
12
        TRUNCATE,
13
        REFERENCE,
14
        TRIGGER,
15
        ALL
16
    };
17

    
18
    public interface Statement extends Visitable {
19
        
20
    }
21
    
22
    public interface SQLConfig extends Config {
23
        public final static String default_schema = "default_schema";
24
        
25
        public final static String allowAutomaticValues = "allowAutomaticValues";
26
        
27
        public final static String ST_ExtentAggregate = "ST_ExtentAggregate";
28
        public final static String ST_UnionAggregate = "ST_UnionAggregate";
29
        public final static String count = "count";
30
        public final static String count_distinct = "count_distinct";
31

    
32
        public final static String type_boolean = "type_boolean";
33
        public final static String type_byte = "type_byte";
34
        public final static String type_bytearray = "type_bytearray";
35
        public final static String type_geometry = "type_geometry";
36
        public final static String type_char = "type_char";
37
        public final static String type_date = "type_date";
38
        public final static String type_double = "type_double";
39
        public final static String type_numeric_p = "type_numeric_p";
40
        public final static String type_numeric_ps = "type_numeric_ps";
41
        public final static String type_bigdecimal = "type_bigdecimal";
42
        public final static String type_float = "type_float";
43
        public final static String type_int = "type_int";
44
        public final static String type_long = "type_long";
45
        public final static String type_string = "type_string";
46
        public final static String type_string_p = "type_string_p";
47
        public final static String type_time = "type_time";
48
        public final static String type_timestamp = "type_timestamp";
49
        public final static String type_version = "type_version";
50
        public final static String type_URI = "type_URI";
51
        public final static String type_URL = "type_URL";
52
        public final static String type_FILE = "type_FILE";
53
        public final static String type_FOLDER = "type_FOLDER";
54
     
55
        public final static String DELETE_FROM_table_WHERE_expresion = "DELETE_FROM_table_WHERE_expresion";
56
        public final static String DELETE_FROM_table = "DELETE_FROM_table";
57
        public final static String INSERT_INTO_table_columns_VALUES_values = "INSERT_INTO_table_columns_VALUES_values";
58
        public final static String UPDATE_TABLE_STATISTICS_table = "UPDATE_TABLE_STATISTICS_table";        
59
        public final static String DROP_TABLE_table = "DROP_TABLE_table";
60
        public final static String DELETE_GEOMETRY_COLUMN_FROM_TABLE_schema_table = "DELETE_GEOMETRY_COLUMN_FROM_TABLE_schema_table";
61
        public final static String DELETE_GEOMETRY_COLUMN_FROM_TABLE_table = "DELETE_GEOMETRY_COLUMN_FROM_TABLE_table";
62
        public final static String UPDATE_table_SET_columnsAndValues_WHERE_expresion = "UPDATE_table_SET_columnsAndValues_WHERE_expresion";
63
        public final static String UPDATE_table_SET_columnsAndValues = "UPDATE_table_SET_columnsAndValues";
64
        public final static String GRANT_privileges_ON_table_TO_role = "GRANT_privileges_ON_table_TO_role";
65
    
66
    }
67
    
68
    public interface TableNameBuilder extends Visitable {
69
        public TableNameBuilder database(String name);
70
        public TableNameBuilder schema(String name);
71
        public TableNameBuilder name(String name);
72
        public String getDatabase();
73
        public String getSchema();
74
        public String getName();
75
        public boolean has_database();
76
        public boolean has_schema();
77
    }
78

    
79
    public interface CountBuilder extends Value {
80
        public CountBuilder all();
81
        public CountBuilder column(Value value);
82
        public CountBuilder distinct();
83
    }
84
    
85
    public interface SelectColumnBuilder extends Visitable {
86
        public SelectColumnBuilder name(String name);
87
        public SelectColumnBuilder value(Value value);
88
        public SelectColumnBuilder as(String alias);
89
        public SelectColumnBuilder as_geometry();
90
        public SelectColumnBuilder all();
91
        public String getName();
92
        public String getAlias();
93
        public String getValue();
94
    }
95
    
96
    public interface InsertColumnBuilder extends Visitable {
97
        public InsertColumnBuilder name(String name);
98
        public InsertColumnBuilder with_value(Value value);
99
        public String getName();
100
        public Value getValue();
101
    }
102
    
103
    public interface UpdateColumnBuilder extends InsertColumnBuilder {
104
        @Override
105
        public UpdateColumnBuilder name(String name);
106
        @Override
107
        public UpdateColumnBuilder with_value(Value value);
108
        @Override
109
        public String getName();
110
        @Override
111
        public Value getValue();
112
    }
113
        
114
    public interface FromBuilder extends Visitable {
115
        public TableNameBuilder table();
116
        public FromBuilder subquery(String subquery);
117
        public FromBuilder custom(String passthrough);
118
    }
119

    
120
    public interface OrderByBuilder extends Visitable {
121
        public OrderByBuilder column(String name);
122
        public OrderByBuilder ascending(boolean asc);
123
        public OrderByBuilder ascending();
124
        public OrderByBuilder descending();
125
        public OrderByBuilder custom(String order);
126
    }
127
    
128
    public interface SelectBuilder extends Statement {
129
        public SelectColumnBuilder column();
130
        public FromBuilder from();
131
        public ExpressionBuilder where();
132
        public OrderByBuilder order_by();
133
        public SelectBuilder distinct();
134
        public SelectBuilder limit(long limit);
135
        
136
        /**
137
         * Specifies an offset to be applied to the SQL statement.
138
         * Only an offset can be applied if an order has been specified. 
139
         * Otherwise an IllegalStateException exception will be thrown when 
140
         * constructing the SQL statement invoking the toString method.
141
         * 
142
         * @param offset
143
         * @return this SelectBuilder
144
         */
145
        public SelectBuilder offset(long offset);
146
        
147
        public boolean has_column(String name);
148
        public boolean has_where();
149
        public boolean has_from();
150
        public boolean has_order_by();
151
        public boolean has_limit();
152
        public boolean has_offset();
153

    
154
        /**
155
         * Constructs the SQL statement.
156
         * If the values associated with the SQL statement are not valid 
157
         * an IllegalStateException exception is thrown.
158
         * 
159
         * @return the SQL select statement.
160
         * @throws IllegalStateException if the values of select statement are not valids.
161
         */
162
        @Override
163
        public String toString();
164
        
165
    }
166
    
167
    public interface UpdateBuilder extends Statement {
168
        public TableNameBuilder table();
169
        public UpdateColumnBuilder column();
170
        public ExpressionBuilder where();
171
        public boolean has_where();
172
    }
173
    
174
    public interface InsertBuilder extends Statement {
175
        public TableNameBuilder table();
176
        public InsertColumnBuilder column();
177
    }
178
    
179
    public interface DeleteBuilder extends Statement {
180
        public TableNameBuilder table();
181
        public ExpressionBuilder where();
182
        public boolean has_where();
183
    }
184
    
185
    public interface AlterTableBuilder extends Statement {
186
        public TableNameBuilder table();
187
        public AlterTableBuilder drop_column(String columnName);
188
        public AlterTableBuilder add_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean allowNulls, boolean isAutomatic, Object defaultValue);
189
        public AlterTableBuilder alter_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean allowNulls, boolean isAutomatic, Object defaultValue);
190
        public AlterTableBuilder rename_column(String source, String target);
191
        public List<String> toStrings();
192
    }
193
    
194
    public interface CreateTableBuilder extends Statement {
195
        public TableNameBuilder table();
196
        public CreateTableBuilder add_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean allowNulls, boolean isAutomatic, Object defaultValue);
197
        public List<String> toStrings();
198
    }
199
    
200
    public interface UpdateTableStatisticsBuilder extends Statement {
201
        public TableNameBuilder table();
202
        public List<String> toStrings();
203
    }
204
        
205
    public interface GrantRoleBuilder {
206
        public GrantRoleBuilder privilege(Privilege privilege);
207
        public GrantRoleBuilder select();
208
        public GrantRoleBuilder insert();
209
        public GrantRoleBuilder delete();
210
        public GrantRoleBuilder truncate();
211
        public GrantRoleBuilder reference();
212
        public GrantRoleBuilder update();
213
        public GrantRoleBuilder trigger();
214
        public GrantRoleBuilder all();
215
    }
216
    
217
    public interface GrantBuilder extends Statement {
218
        public TableNameBuilder table();
219
        public GrantRoleBuilder role(String name);        
220
        public List<String> toStrings();
221
    }
222
        
223
    public interface DropTableBuilder extends Statement {
224
        public TableNameBuilder table();
225
        public List<String> toStrings();
226
    }
227

    
228
    public String default_schema();
229

    
230
    public String sqltype(int dataType, int p, int s);
231

    
232
    public SelectBuilder select();
233
    
234
    public UpdateBuilder update();
235

    
236
    public InsertBuilder insert();
237
    
238
    public DeleteBuilder delete();
239
    
240
    public AlterTableBuilder alter_table();
241

    
242
    public CreateTableBuilder create_table();
243

    
244
    public GrantBuilder grant();
245

    
246
    public DropTableBuilder drop_table();
247

    
248
    public UpdateTableStatisticsBuilder update_table_statistics();
249

    
250
    public CountBuilder count();
251
    
252
    public Function ST_ExtentAggregate(Value geom);
253

    
254
    public Function ST_UnionAggregate(Value geom);
255
            
256
}