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

History | View | Annotate | Download (9.27 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
        public SelectBuilder offset(long offset);
136
        public boolean has_column(String name);
137
        public boolean has_where();
138
        public boolean has_from();
139
        public boolean has_order_by();
140
        public boolean has_limit();
141
        public boolean has_offset();
142
    }
143
    
144
    public interface UpdateBuilder extends Statement {
145
        public TableNameBuilder table();
146
        public UpdateColumnBuilder column();
147
        public ExpressionBuilder where();
148
        public boolean has_where();
149
    }
150
    
151
    public interface InsertBuilder extends Statement {
152
        public TableNameBuilder table();
153
        public InsertColumnBuilder column();
154
    }
155
    
156
    public interface DeleteBuilder extends Statement {
157
        public TableNameBuilder table();
158
        public ExpressionBuilder where();
159
        public boolean has_where();
160
    }
161
    
162
    public interface AlterTableBuilder extends Statement {
163
        public TableNameBuilder table();
164
        public AlterTableBuilder drop_column(String columnName);
165
        public AlterTableBuilder add_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean allowNulls, boolean isAutomatic, Object defaultValue);
166
        public AlterTableBuilder alter_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean allowNulls, boolean isAutomatic, Object defaultValue);
167
        public AlterTableBuilder rename_column(String source, String target);
168
        public List<String> toStrings();
169
    }
170
    
171
    public interface CreateTableBuilder extends Statement {
172
        public TableNameBuilder table();
173
        public CreateTableBuilder add_column(String columnName, int type, int type_p, int type_s, boolean isPk, boolean allowNulls, boolean isAutomatic, Object defaultValue);
174
        public List<String> toStrings();
175
    }
176
    
177
    public interface UpdateTableStatisticsBuilder extends Statement {
178
        public TableNameBuilder table();
179
        public List<String> toStrings();
180
    }
181
        
182
    public interface GrantRoleBuilder {
183
        public GrantRoleBuilder privilege(Privilege privilege);
184
        public GrantRoleBuilder select();
185
        public GrantRoleBuilder insert();
186
        public GrantRoleBuilder delete();
187
        public GrantRoleBuilder truncate();
188
        public GrantRoleBuilder reference();
189
        public GrantRoleBuilder update();
190
        public GrantRoleBuilder trigger();
191
        public GrantRoleBuilder all();
192
    }
193
    
194
    public interface GrantBuilder extends Statement {
195
        public TableNameBuilder table();
196
        public GrantRoleBuilder role(String name);        
197
        public List<String> toStrings();
198
    }
199
        
200
    public interface DropTableBuilder extends Statement {
201
        public TableNameBuilder table();
202
        public List<String> toStrings();
203
    }
204

    
205
    public String default_schema();
206

    
207
    public String sqltype(int dataType, int p, int s);
208

    
209
    public SelectBuilder select();
210
    
211
    public UpdateBuilder update();
212

    
213
    public InsertBuilder insert();
214
    
215
    public DeleteBuilder delete();
216
    
217
    public AlterTableBuilder alter_table();
218

    
219
    public CreateTableBuilder create_table();
220

    
221
    public GrantBuilder grant();
222

    
223
    public DropTableBuilder drop_table();
224

    
225
    public UpdateTableStatisticsBuilder update_table_statistics();
226

    
227
    public CountBuilder count();
228
    
229
    public Function ST_ExtentAggregate(Value geom);
230

    
231
    public Function ST_UnionAggregate(Value geom);
232
            
233
}