Revision 45152 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/JDBCResourcesStorage.java

View differences:

JDBCResourcesStorage.java
165 165
            return false;
166 166
        }
167 167

  
168
        public boolean remove() {
169
            FeatureStore store = null;
170
            try {
171
                FoldersManager fm = ToolsLocator.getFoldersManager();
172
                Pair<String, String> key = this.getCacheID();
173
                File f = fm.getTemporaryFile("resources-storage","jdbc", key.getLeft(), key.getRight());
174
                if( f.exists() ) {
175
                  f.delete();
176
                }
177
                DataManager dataManager = DALLocator.getDataManager();
178
                store = (FeatureStore) dataManager.openStore(
179
                        this.storeParameters.getDataStoreName(),
180
                        this.storeParameters
181
                );
182
                ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder();
183
                String filter = builder.eq(
184
                        builder.column(FIELD_RESOURCES_NAME),
185
                        builder.constant(this.tableName+"."+this.name)
186
                ).toString();
187
                Feature feature = store.findFirst(filter);
188
                if(feature != null){
189
                    store.edit();
190
                    store.delete(feature);
191
                    store.finishEditing();
192
                    return true;
193
                }
194
                return false;
195
            } catch (Throwable ex) {
196
                LOGGER.warn("Can't access to the resoure '" + this.getURL() + "'.", ex);
197
            } finally {
198
                DisposeUtils.disposeQuietly(store);
199
            }
200
            return false;
201
        }
202

  
168 203
        private Pair<String,String> getCacheID() {
169 204
          byte[] data = this.storeParameters.toByteArray();
170 205
          ImmutablePair<String, String> r = new ImmutablePair<>(
......
396 431

  
397 432
    }
398 433

  
434
    @Override
435
    public boolean remove(String resourceName) {
436
        if( this.alternativeStorge!=null ) {
437
            try {
438
                this.alternativeStorge.remove(resourceName);
439
            } catch (Exception e) {
440
                //Do nothing
441
            }
442
        }
443
        if (this.resourcesStoreParameters == null) {
444
            return false;
445
        }
446
        DataBaseResource resource = new DataBaseResource(
447
                this.resourcesStoreParameters,
448
                this.tableName, 
449
                resourceName
450
        );
451
        
452
        return resource.remove();
453
    }
399 454
}

Also available in: Unified diff