Revision 44198 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.jdbc/src/main/java/org/gvsig/fmap/dal/store/jdbc2/spi/operations/PerformChangesOperation.java

View differences:

PerformChangesOperation.java
9 9
import java.util.List;
10 10
import org.apache.commons.collections.CollectionUtils;
11 11
import org.apache.commons.lang3.StringUtils;
12
import org.gvsig.expressionevaluator.ExpressionBuilder;
13
import org.gvsig.expressionevaluator.ExpressionBuilder.Variable;
12 14
import org.gvsig.fmap.dal.DataTypes;
13 15
import org.gvsig.fmap.dal.exception.DataException;
14 16
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
......
24 26
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase;
25 27
import org.gvsig.fmap.dal.store.jdbc2.JDBCUtils;
26 28
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory.TableReference;
29
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_FEATURE_TYPE;
30
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCSQLBuilderBase.PROP_TABLE;
27 31
import org.gvsig.tools.dispose.Disposable;
28 32
import org.gvsig.tools.dispose.DisposeUtils;
29 33

  
......
88 92
            FeatureType type
89 93
        ) {
90 94
        JDBCSQLBuilderBase sqlbuilder = createSQLBuilder();
95
        ExpressionBuilder expbuilder = sqlbuilder.expression();
96

  
91 97
        sqlbuilder.delete().table()
92 98
                .database(this.table.getDatabase())
93 99
                .schema(this.table.getSchema())
......
95 101
        for (FeatureAttributeDescriptor attr : type) {
96 102
            if (attr.isPrimaryKey()) {
97 103
                sqlbuilder.delete().where().and(
98
                        sqlbuilder.eq(
99
                                sqlbuilder.column(attr.getName()),
100
                                sqlbuilder.parameter(attr.getName()).as_variable()
104
                        expbuilder.eq(
105
                                expbuilder.column(attr.getName()),
106
                                expbuilder.parameter(attr.getName()).as_variable()
101 107
                        )
102 108
                );
103 109
            }
......
117 123

  
118 124
        PreparedStatement st = null;
119 125
        Disposable paramsDisposer = null;
126
        sqlbuilder.setProperties(
127
                Variable.class, 
128
                PROP_TABLE, table
129
        );
120 130
        String sql = sqlbuilder.delete().toString();
121 131
        try {
122 132
            st = conn.prepareStatement(sql);
......
149 159
            FeatureType type
150 160
        ) {
151 161
        JDBCSQLBuilderBase sqlbuilder = createSQLBuilder();
162
        ExpressionBuilder expbuilder = sqlbuilder.expression();
152 163

  
153 164
        sqlbuilder.insert().table()
154 165
                .database(this.table.getDatabase())
......
160 171
            }
161 172
            if (attr.getType() == DataTypes.GEOMETRY) {
162 173
                sqlbuilder.insert().column().name(attr.getName()).with_value(
163
                    sqlbuilder.parameter(attr.getName()).as_geometry_variable().srs(
164
                        sqlbuilder.parameter().value(attr.getSRS()).as_constant()
165
                    )
174
                    expbuilder.parameter(attr.getName()).as_geometry_variable()
175
                        .srs(
176
                            expbuilder.parameter().value(
177
                                attr.getSRS()).as_constant()
178
                        )
166 179
                );
167 180
            } else {
168 181
                sqlbuilder.insert().column().name(attr.getName()).with_value(
169
                        sqlbuilder.parameter(attr.getName())
182
                        expbuilder.parameter(attr.getName())
170 183
                );
171 184
            }
172 185
        }
......
181 194

  
182 195
        PreparedStatement st;
183 196
        Disposable paramsDisposer;
197
        sqlbuilder.setProperties(
198
                Variable.class, 
199
                PROP_FEATURE_TYPE, type,
200
                PROP_TABLE, table
201
        );
184 202
        String sql = sqlbuilder.insert().toString();
185 203
        try {
186 204
            st = conn.prepareStatement(sql);
......
210 228
            FeatureType type
211 229
        ) {
212 230
        JDBCSQLBuilderBase sqlbuilder = createSQLBuilder();
231
        ExpressionBuilder expbuilder = sqlbuilder.expression();
213 232

  
214 233
        sqlbuilder.update().table()
215 234
                .database(this.table.getDatabase())
......
218 237
        for (FeatureAttributeDescriptor attr : type) {
219 238
            if (attr.isPrimaryKey()) {
220 239
                sqlbuilder.update().where().and(
221
                        sqlbuilder.eq(
222
                                sqlbuilder.column(attr.getName()),
223
                                sqlbuilder.parameter(attr.getName()).as_variable()
240
                        expbuilder.eq(
241
                                expbuilder.column(attr.getName()),
242
                                expbuilder.parameter(attr.getName()).as_variable()
224 243
                        )
225 244
                );
226 245
            } if ( ! attr.isAutomatic() &&  !attr.isReadOnly() ) {
227 246
                if (attr.getType() == DataTypes.GEOMETRY) {
228 247
                    sqlbuilder.update().column().name(attr.getName()).with_value(
229
                        sqlbuilder.parameter(attr.getName()).as_geometry_variable().srs(
230
                            sqlbuilder.parameter().value(attr.getSRS()).as_constant()
248
                        expbuilder.parameter(attr.getName()).as_geometry_variable().srs(
249
                            expbuilder.parameter().value(attr.getSRS()).as_constant()
231 250
                        )
232 251
                    );
233 252
                } else {
234 253
                    sqlbuilder.update().column().name(attr.getName()).with_value(
235
                        sqlbuilder.parameter(attr.getName()).as_variable()
254
                        expbuilder.parameter(attr.getName()).as_variable()
236 255
                    );
237 256
                }
238 257
            }
......
252 271
        
253 272
        PreparedStatement st = null;
254 273
        Disposable paramsDisposer = null;
274
        sqlbuilder.setProperties(
275
                Variable.class, 
276
                PROP_FEATURE_TYPE, type,
277
                PROP_TABLE, table
278
        );
255 279
        String sql = sqlbuilder.update().toString();
256 280
        try {
257 281
            st = conn.prepareStatement(sql);
......
347 371
                }
348 372
            }
349 373
        }
374
        sqlbuilder.setProperties(
375
                Variable.class, 
376
                PROP_TABLE, table
377
        );
350 378
        return sqlbuilder.alter_table().toStrings();
351 379
    }
352 380
    
......
421 449
                    .database(this.table.getDatabase())
422 450
                    .schema(this.table.getSchema())
423 451
                    .name(this.table.getTable());
452
                sqlbuilder.setProperties(
453
                        Variable.class, 
454
                        PROP_TABLE, table
455
                );
424 456
                sqls.addAll(sqlbuilder.create_index().toStrings());
425 457
            }
426 458
        }

Also available in: Unified diff