Revision 46338

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/CSVStoreParameters.java
26 26
import java.io.File;
27 27
import java.util.Locale;
28 28
import org.apache.commons.lang3.BooleanUtils;
29

  
30 29
import org.apache.commons.lang3.StringEscapeUtils;
31 30
import org.apache.commons.lang3.StringUtils;
32 31
import org.cresques.cts.IProjection;
......
41 40
import org.gvsig.fmap.dal.feature.FeatureType;
42 41
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
43 42
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
44
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
43
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
45 44
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
46 45
import org.gvsig.fmap.geom.Geometry;
47 46
import org.gvsig.tools.dynobject.DelegatedDynObject;
......
55 54
import org.supercsv.quote.QuoteMode;
56 55

  
57 56
@SuppressWarnings("UseSpecificCatch")
58
public class CSVStoreParameters extends AbstractDataParameters implements
57
public class CSVStoreParameters extends AbstractDataStoreParameters implements
59 58
        OpenFeatureStoreParameters, FilesystemStoreParameters {
60 59

  
61 60
    private static final Logger LOGGER = LoggerFactory.getLogger(CSVStoreParameters.class);
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.dbf/src/main/java/org/gvsig/fmap/dal/store/dbf/DBFStoreParameters.java
30 30
import org.apache.commons.lang3.BooleanUtils;
31 31
import org.apache.commons.lang3.StringUtils;
32 32
import org.gvsig.fmap.dal.DataParameters;
33

  
34 33
import org.gvsig.fmap.dal.FileHelper;
35 34
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
36 35
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
37 36
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
38
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
37
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
39 38
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
40 39
import org.gvsig.fmap.dal.store.dbf.utils.DbaseCodepage;
41 40
import org.gvsig.tools.dynobject.DelegatedDynObject;
42

  
43 41
import org.slf4j.Logger;
44 42
import org.slf4j.LoggerFactory;
45 43

  
46 44

  
47
public class DBFStoreParameters extends AbstractDataParameters implements
45
public class DBFStoreParameters extends AbstractDataStoreParameters implements
48 46
		OpenFeatureStoreParameters, FilesystemStoreParameters {
49 47

  
50 48
    private static final Logger logger = LoggerFactory.getLogger(DBFStoreParameters.class);
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.lib/src/main/java/org/gvsig/fmap/dal/feature/spi/simpleprovider/SimpleSequentialReaderStoreParameters.java
33 33
import org.gvsig.fmap.dal.FileHelper;
34 34
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
35 35
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters;
36
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
36
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
37 37
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
38 38
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
39 39
import org.gvsig.tools.ToolsLocator;
......
45 45
import org.slf4j.LoggerFactory;
46 46

  
47 47
public class SimpleSequentialReaderStoreParameters 
48
        extends AbstractDataParameters 
48
        extends AbstractDataStoreParameters 
49 49
        implements  OpenFeatureStoreParameters, FilesystemStoreParameters, Cloneable
50 50
    {
51 51

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.lib/src/main/java/org/gvsig/fmap/dal/serverexplorer/filesystem/FilesystemServerExplorerParameters.java
23 23
 */
24 24
package org.gvsig.fmap.dal.serverexplorer.filesystem;
25 25

  
26
import org.apache.commons.lang3.StringUtils;
26 27
import org.gvsig.fmap.dal.DataServerExplorerParameters;
27 28
import org.gvsig.fmap.dal.DataTypes;
28 29
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
......
92 93
	protected DelegatedDynObject getDelegatedDynObject() {
93 94
		return delegatedDynObject;
94 95
	}
96

  
97
    @Override
98
    public boolean isTheSameServerExplorer(DataServerExplorerParameters params) {
99
        if(!(params instanceof FilesystemServerExplorerParameters)){
100
            return false;
101
        }
102
        return StringUtils.equals(this.getRoot(), ((FilesystemServerExplorerParameters)params).getRoot());
103
    }
95 104
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureStore.java
450 450
            this.featureCount = null;
451 451
            this.provider.refresh();
452 452
        }
453
        this.resourcesStorage = null;
454
        loadDALFile();
453 455
        this.notifyChange(FeatureStoreNotification.AFTER_REFRESH);
454 456
    }
455 457

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/store/memory/MemoryStoreParameters.java
25 25
package org.gvsig.fmap.dal.store.memory;
26 26

  
27 27
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
28
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
28
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
29 29
import org.gvsig.tools.ToolsLocator;
30 30
import org.gvsig.tools.dynobject.DelegatedDynObject;
31 31
import org.gvsig.tools.dynobject.DynStruct;
......
34 34
/**
35 35
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera</a>
36 36
 */
37
public class MemoryStoreParameters extends AbstractDataParameters implements
37
public class MemoryStoreParameters extends AbstractDataStoreParameters implements
38 38
OpenFeatureStoreParameters{
39 39
	  
40 40
	private static final String PARAMETERS_DEFINITION_NAME = "MemoryStoreParameters";
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDataManager.java
10 10
import java.util.HashSet;
11 11
import java.util.List;
12 12
import java.util.Map;
13
import java.util.Objects;
14 13
import java.util.Set;
15 14
import java.util.UUID;
16 15
import java.util.function.Predicate;
......
22 21
import org.gvsig.expressionevaluator.Expression;
23 22
import org.gvsig.expressionevaluator.ExpressionBuilder;
24 23
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
25
import org.gvsig.expressionevaluator.ExpressionUtils;
26
import org.gvsig.expressionevaluator.MutableSymbolTable;
27 24
import org.gvsig.expressionevaluator.impl.DefaultDALExpressionBuilder;
28 25
import org.gvsig.expressionevaluator.impl.DefaultFeatureRuleExpression;
29 26
import org.gvsig.expressionevaluator.impl.symboltable.FeatureSymbolTableImpl;
30 27
import org.gvsig.fmap.dal.BaseStoresRepository;
31
import org.gvsig.fmap.dal.DALLocator;
32 28
import org.gvsig.fmap.dal.DataFactory;
33 29
import org.gvsig.fmap.dal.DataManager;
34 30
import org.gvsig.fmap.dal.DataServerExplorer;
......
61 57
import org.gvsig.fmap.dal.feature.EditableFeature;
62 58
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
63 59
import org.gvsig.fmap.dal.feature.EditableFeatureType;
64
import org.gvsig.fmap.dal.feature.Feature;
65 60
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
66 61
import org.gvsig.fmap.dal.feature.FeatureQuery;
67 62
import org.gvsig.fmap.dal.feature.FeatureRuleExpression;
68 63
import org.gvsig.fmap.dal.feature.FeatureSet;
69
import org.gvsig.fmap.dal.feature.FeatureSet.DisposableFeatureSetIterable;
70 64
import org.gvsig.fmap.dal.feature.FeatureStore;
71 65
import org.gvsig.fmap.dal.feature.FeatureType;
72
import org.gvsig.fmap.dal.feature.ForeingKey;
73
import static org.gvsig.fmap.dal.feature.ForeingKey.MAX_AVAILABLE_VALUES;
74 66
import org.gvsig.fmap.dal.feature.exception.UnsupportedDataTypeException;
75 67
import org.gvsig.fmap.dal.feature.impl.DALFile;
76 68
import org.gvsig.fmap.dal.feature.impl.DefaultEditableFeatureAttributeDescriptor;
......
103 95
import org.gvsig.json.Json;
104 96
import org.gvsig.tools.ToolsLocator;
105 97
import org.gvsig.tools.dataTypes.DataType;
106
import org.gvsig.tools.dataTypes.DataTypeUtils;
107 98
import org.gvsig.tools.dataTypes.DataTypesManager;
108
import org.gvsig.tools.dispose.DisposeUtils;
109 99
import org.gvsig.tools.dynobject.DynObject;
110
import org.gvsig.tools.dynobject.DynObjectValueItem;
111 100
import org.gvsig.tools.dynobject.DynStruct;
112 101
import org.gvsig.tools.dynobject.DynStruct_v2;
113 102
import org.gvsig.tools.dynobject.Tags;
......
1297 1286
    }
1298 1287
    
1299 1288
    @Override
1289
    public DatabaseWorkspaceManager getDatabaseWorkspace(DataServerExplorerParameters params) {
1290
        for (DatabaseWorkspaceManager databaseWorkspace : this.databaseWorkspaces.values()) {
1291
            DataServerExplorerParameters p = databaseWorkspace.getServerExplorerParameters();
1292
            if(p.isTheSameServerExplorer(params)){
1293
                return databaseWorkspace;
1294
            }
1295
        }
1296
        return null;
1297
    }
1298
    
1299
    @Override
1300 1300
    public void writeDALResource(ResourcesStorage resources, DataStore store) {
1301 1301
        ResourcesStorage.Resource resource = null;
1302 1302
        try {
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/impl/DefaultDatabaseWorkspaceManager.java
8 8
import java.util.Map;
9 9
import java.util.Objects;
10 10
import org.apache.commons.collections4.map.LRUMap;
11
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
12 11
import org.apache.commons.lang3.StringUtils;
13
import org.apache.commons.lang3.mutable.Mutable;
14
import org.apache.commons.lang3.mutable.MutableObject;
15 12
import org.gvsig.expressionevaluator.ExpressionBuilder;
16 13
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
17 14
import org.gvsig.expressionevaluator.ExpressionUtils;
18
import org.gvsig.expressionevaluator.impl.DefaultExpressionEvaluatorManager;
19 15
import org.gvsig.expressionevaluator.spi.AbstractSymbolTable;
20 16
import org.gvsig.fmap.dal.DALLocator;
21 17
import org.gvsig.fmap.dal.DataManager;
......
23 19
import org.gvsig.fmap.dal.DataServerExplorerParameters;
24 20
import org.gvsig.fmap.dal.DataStoreParameters;
25 21
import org.gvsig.fmap.dal.DataTypes;
22
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
26 23
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYID;
27 24
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYLABEL;
28 25
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_CONFIGURATION_NAME;
29 26
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_CONFIGURATION_VALUE;
30
import org.gvsig.fmap.dal.StoresRepository;
31
import org.gvsig.fmap.dal.feature.EditableFeature;
32
import org.gvsig.fmap.dal.feature.EditableFeatureType;
33
import org.gvsig.fmap.dal.feature.Feature;
34
import org.gvsig.fmap.dal.feature.FeatureStore;
27
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_REPOSITORY_FLAGS;
35 28
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_REPOSITORY_NAME;
36 29
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_REPOSITORY_PARAMETERS;
37
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_REPOSITORY_FLAGS;
38 30
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_RESOURCES_NAME;
39 31
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_RESOURCES_RESOURCE;
40 32
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_CONFIGURATION;
......
43 35
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_REPOSITORY_NAME;
44 36
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_RESOURCES;
45 37
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_RESOURCES_NAME;
38
import org.gvsig.fmap.dal.StoresRepository;
39
import org.gvsig.fmap.dal.feature.EditableFeature;
40
import org.gvsig.fmap.dal.feature.EditableFeatureType;
41
import org.gvsig.fmap.dal.feature.Feature;
42
import org.gvsig.fmap.dal.feature.FeatureStore;
46 43
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
47 44
import org.gvsig.tools.dispose.DisposeUtils;
48 45
import org.gvsig.tools.dynobject.DynClass;
......
87 84
      
88 85
        @Override
89 86
        protected void reload() {
87
            LOGGER.info("reload CachedConfigValue "+name);
90 88
            String s = DefaultDatabaseWorkspaceManager.this.getConfigValue(name);
91 89
            if( StringUtils.isBlank(s) ) {
92 90
                this.setValue(null);
......
94 92
                this.setValue(s);
95 93
            }
96 94
        }
95

  
96
        @Override
97
        public String toString() {
98
            return this.name+" = "+this.getValue();
99
        }
100
        
101
        
97 102
    }
98 103
    
99 104
    private final DataServerExplorerParameters serverParameters;
100 105
    private Boolean existsConfiguration = null;
101 106
    private StoresRepository storesRepository;
102
    private CachedValue<File> alternativeResourcesFolder = null;
107
    private CachedConfigValue alternativeResourcesFolder = null;
103 108
    private CachedValue<File> baseFolder;
104 109
    private Map<String,CachedConfigValue> cachedConfigValues;
105 110
    
......
112 117
            if( StringUtils.isBlank(s) ) {
113 118
                this.setValue(null);
114 119
            } else {
120
                s = ExpressionUtils.evaluateDynamicText(DefaultDatabaseWorkspaceManager.this, s);
115 121
                this.setValue(new File(s));
116 122
            }
117 123
          }
118 124
          
119 125
        };
120 126
        this.baseFolder.setExpireTime(20000); // 20seg
121
        this.alternativeResourcesFolder = new CachedValue() {
122
          @Override
123
          protected void reload() {
124
            String s = DefaultDatabaseWorkspaceManager.this.getConfigValue(CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH);
125
            if( StringUtils.isBlank(s) ) {
126
                this.setValue(null);
127
            } else {
128
                this.setValue(new File(s));
129
            }
130
          }
131
          
132
        };
133
        this.alternativeResourcesFolder.setExpireTime(30000); // 20seg
127
        this.alternativeResourcesFolder = new CachedConfigValue(CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH, null, 30000);
128
//        this.alternativeResourcesFolder = new CachedValue() {
129
//          @Override
130
//          protected void reload() {
131
//            String s = DefaultDatabaseWorkspaceManager.this.getConfigValue(CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH);
132
//            if( StringUtils.isBlank(s) ) {
133
//                this.setValue(null);
134
//            } else {
135
//                this.setValue(new File(s));
136
//            }
137
//          }
138
//          
139
//        };
140
//        this.alternativeResourcesFolder.setExpireTime(30000); // 20seg
134 141
        
135 142
        this.cachedConfigValues = new LRUMap<>(20, 20);
136 143
        ExpressionEvaluatorLocator.getExpressionEvaluatorManager().populateSymbolTable(this);
......
234 241
            throw new RuntimeException("Can't get server explorer for workspace '"+Objects.toString(this.serverParameters)+"'", ex);
235 242
        }
236 243
    }
244

  
245
    @Override
246
    public DataServerExplorerParameters getServerExplorerParameters() {
247
        return this.serverParameters;
248
    }
237 249
    
250
    
251
    
238 252
    private boolean existsTable(String tableName) {
239 253
        DataServerExplorer server = null;
240 254
        try {
......
400 414
                return null;
401 415
            }
402 416
            if( StringUtils.equalsIgnoreCase(name, CONFIG_NAME_BASEFOLDER) ) {
403
              return this.baseFolder.get().toString();
417
              return Objects.toString(this.baseFolder.get(), null);
404 418
            }
419
            if( StringUtils.equalsIgnoreCase(name, CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH) ) {
420
              return Objects.toString(this.alternativeResourcesFolder.get(), null);
421
            }
405 422
            CachedConfigValue cachedValue = this.cachedConfigValues.get(name);
406 423
            if( cachedValue != null ) {
407 424
              return cachedValue.get();
408 425
            }
409 426
            String value = this.getConfigValue(name);
410 427
            this.cachedConfigValues.put(name, new CachedConfigValue(name, value, 15000));
428
            value = ExpressionUtils.evaluateDynamicText(this, value);
411 429
            return value;
412 430
        } catch (Exception ex) {
413 431
            LOGGER.warn("Can't read configuration value '"+name+"'", ex);
......
435 453
                return null;
436 454
            }
437 455
            String value = feature.getString(FIELD_CONFIGURATION_VALUE);
438
            value = ExpressionUtils.evaluateDynamicText(this, value);
456
//            value = ExpressionUtils.evaluateDynamicText(this, value);
439 457
            return value;
440 458
            
441 459
        } catch (Exception ex) {
......
476 494
                store.update(efeature);
477 495
            }
478 496
            store.finishEditing();
479
            if( this.cachedConfigValues.containsKey(name) ) {
480
              this.cachedConfigValues.get(name).set(value);
497
            if( StringUtils.equalsIgnoreCase(name, CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH)) {
498
                this.alternativeResourcesFolder.expired();
499
            } else if( this.cachedConfigValues.containsKey(name) ) {
500
                value = ExpressionUtils.evaluateDynamicText(this, value);
501
                this.cachedConfigValues.get(name).set(value);
481 502
            }
482 503
            return true;
483 504
        } catch (Exception ex) {
......
655 676
    
656 677
    @Override
657 678
    public ResourcesStorage getAlternativeResourcesStorage(String tableName) {
658
//        if( this.alternativeResourcesFolder==null ) {
659
//            this.alternativeResourcesFolder = new MutableObject<>(null);
660
//            String resourcesPath = this.get(CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH);
661
//            if( !StringUtils.isBlank(resourcesPath) ) {
662
//                try {
663
//                    resourcesPath = (String) ExpressionUtils.evaluateDynamicText(resourcesPath);
664
//                } catch(Throwable th) {
665
//                    // Do nothing
666
//                }
667
//                File f = new File(resourcesPath);
668
//                if( f.exists() ) {
669
//                    this.alternativeResourcesFolder.setValue(f);
670
//                }
671
//            }
672
//        }
673
//        File folder = this.alternativeResourcesFolder.getValue();
674
        File folder = this.alternativeResourcesFolder.get();
679
        LOGGER.info("getAlternativeResourcesStorage from cache: "+!this.alternativeResourcesFolder.isExpired());
680
        String s = this.alternativeResourcesFolder.get();
681
        LOGGER.info("alternativeResourcesStorage: "+s);
682
        if( StringUtils.isBlank(s) ) {
683
            return null;
684
        }
685
        
686
        s = ExpressionUtils.evaluateDynamicText(this, s);
687

  
688
        File folder = new File(s);
689
        
675 690
        if( folder==null ) {
676 691
            return null;
677 692
        }
......
679 694
        ResourcesStorage resources = new FilesResourcesStorage(resourcesRoot);
680 695
        return resources;
681 696
    }
697
    
698
    @Override
699
    public boolean hasAlternativeResourcesStorage() {
700
        String path = this.get(CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH);
701
        return StringUtils.isNotBlank(path);
702
    }
682 703

  
683 704
    @Override
684 705
    public void setAlternativeResourcesStorage(String resourcesPath) {
685
        this.set(CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH, resourcesPath);
686
        this.alternativeResourcesFolder.expired();
706
//        this.fix();
707
      this.set(CONFIG_NAME_ALTERNATIVE_RESOURCES_PATH, resourcesPath);
708
//      this.alternativeResourcesFolder.expired();
687 709
    }
688 710

  
689 711
    @Override
......
850 872
      DataManager manager = DALLocator.getDataManager();
851 873
      manager.removeDatabaseWorkspace(this);
852 874
    }
875

  
876
    @Override
877
    public boolean isConnected() {
878
      DataManager manager = DALLocator.getDataManager();
879
      DatabaseWorkspaceManager ws = manager.getDatabaseWorkspace(this.getId());
880
      if(ws == null){
881
          return false;
882
      }
883
      if(ws.getServerExplorerParameters().isTheSameServerExplorer(this.getServerExplorerParameters())){
884
          return true;
885
      }
886
      return false;
887
    }
888
    
889
    @Override
890
    public String getLabelOrId() {
891
        String label = this.getLabel();
892
        if(StringUtils.isBlank(label)){
893
            label = this.getId();
894
        }
895
        return label;
896
    }
897
    
853 898
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.tilecache/org.gvsig.fmap.dal.tilecache.raster/src/main/java/org/gvsig/raster/tilecache/provider/MemoryTileCacheStoreProviderParameters.java
23 23
package org.gvsig.raster.tilecache.provider;
24 24

  
25 25
import org.cresques.cts.IProjection;
26
import org.slf4j.Logger;
27
import org.slf4j.LoggerFactory;
28

  
29 26
import org.gvsig.fmap.crs.CRSFactory;
30 27
import org.gvsig.fmap.dal.FileHelper;
31 28
import org.gvsig.fmap.dal.raster.OpenRasterStoreParameters;
32
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
29
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
33 30
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
34 31
import org.gvsig.tools.dynobject.DelegatedDynObject;
32
import org.slf4j.Logger;
33
import org.slf4j.LoggerFactory;
35 34

  
36 35
/**
37 36
 * Parameters to create a TileCache Provider
38 37
 * @author dmartinezizquierdo
39 38
 *
40 39
 */
41
public class MemoryTileCacheStoreProviderParameters extends AbstractDataParameters implements
40
public class MemoryTileCacheStoreProviderParameters extends AbstractDataStoreParameters implements
42 41
OpenRasterStoreParameters{
43 42

  
44 43
    private static final Logger logger = LoggerFactory.getLogger(MemoryTileCacheStoreProviderParameters.class);
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.tilecache/org.gvsig.fmap.dal.tilecache.raster/src/main/java/org/gvsig/raster/tilecache/provider/TileCacheStoreProviderParameters.java
24 24

  
25 25
import java.io.File;
26 26
import java.util.List;
27

  
28
import org.slf4j.Logger;
29
import org.slf4j.LoggerFactory;
30

  
31 27
import org.gvsig.fmap.dal.FileHelper;
32 28
import org.gvsig.fmap.dal.raster.OpenRasterStoreParameters;
33
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
29
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
34 30
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
35 31
import org.gvsig.tools.dynobject.DelegatedDynObject;
32
import org.slf4j.Logger;
33
import org.slf4j.LoggerFactory;
36 34

  
37 35
/**
38 36
 * Parameters to create a TileCache Provider
39 37
 * @author dmartinezizquierdo
40 38
 *
41 39
 */
42
public class TileCacheStoreProviderParameters extends AbstractDataParameters implements
40
public class TileCacheStoreProviderParameters extends AbstractDataStoreParameters implements
43 41
OpenRasterStoreParameters{
44 42

  
45 43
    private static final Logger logger = LoggerFactory.getLogger(TileCacheStoreProviderParameters.class);
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/jdbc/JDBCServerExplorerParameters.java
23 23
 */
24 24
package org.gvsig.fmap.dal.store.jdbc;
25 25

  
26
import org.apache.commons.lang3.StringUtils;
27
import org.gvsig.fmap.dal.DataServerExplorerParameters;
26 28
import org.gvsig.fmap.dal.serverexplorer.db.DBServerExplorerParameters;
27 29

  
28 30
public class JDBCServerExplorerParameters extends
......
93 95
            }
94 96
        }
95 97

  
98
    @Override
99
    public boolean isTheSameServerExplorer(DataServerExplorerParameters params) {
100
        if(!(params instanceof JDBCServerExplorerParameters)){
101
            return false;
102
        }
103
        return StringUtils.equals(this.getUrl(), ((JDBCServerExplorerParameters)params).getUrl());
104
    }
105

  
96 106
}
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/jdbc/JDBCStoreParameters.java
26 26

  
27 27
import java.text.MessageFormat;
28 28
import org.apache.commons.lang3.StringUtils;
29

  
29
import org.gvsig.fmap.dal.DataStoreParameters;
30 30
import org.gvsig.fmap.dal.store.db.DBStoreParameters;
31 31

  
32 32
/**
......
308 308
            this.setDynValue(BATCH_SIZE_PARAMETER_NAME, batchSize);
309 309
    }
310 310

  
311
    @Override
312
    public boolean isTheSameStore(DataStoreParameters params) {
313
        if(!(params instanceof JDBCStoreParameters)) {
314
            return false;
315
        } 
316
        if(!(StringUtils.equals(((JDBCStoreParameters)params).getTable(), this.getTable()))){
317
            return false;
318
        }
319
        if(!(StringUtils.equals(((JDBCStoreParameters)params).getSchema(), this.getSchema()))){
320
            return false;
321
        }
322
        if(!(StringUtils.equals(((JDBCStoreParameters)params).getSQL(), this.getSQL()))){
323
            return false;
324
        }
325
        return true;
326
    }
327

  
311 328
}
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/jdbc/JDBCNewStoreParameters.java
24 24

  
25 25
import org.apache.commons.lang3.StringUtils;
26 26
import org.gvsig.fmap.dal.store.db.DBNewStoreParameters;
27

  
28 27
import static org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters.CATALOG_PARAMTER_NAME;
29 28
import static org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters.JDBC_DRIVER_CLASS_PARAMTER_NAME;
30 29
import static org.gvsig.fmap.dal.store.jdbc.JDBCConnectionParameters.SCHEMA_PARAMTER_NAME;
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/JDBCServerExplorerBase.java
81 81
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
82 82
import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer;
83 83
import org.gvsig.fmap.dal.store.jdbc2.OperationsFactory;
84
import static org.gvsig.fmap.dal.store.jdbc2.spi.JDBCResourcesStorage.TABLENAME_SERVER_EXPLORER_MARK;
84 85
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CanCreateTablesOperation;
85 86
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.CreateTableOperation;
86 87
import org.gvsig.fmap.dal.store.jdbc2.spi.operations.DropTableOperation;
......
227 228
        @Override
228 229
        protected void reload() {
229 230
            String jsonConfig = getConfigValue(this.openParameters, CONFIG_NAME_CUSTOM_RESOURCES);
231
            LOGGER.info("reload CustomResourcesConfig "+jsonConfig);
230 232
            CustomResourcesConfig config = new CustomResourcesConfig(jsonConfig);        
231 233
            this.setExpireTime(config.getCacheExpireTimeInMillis());
232 234
            this.setValue(config);
......
261 263

  
262 264
        @Override
263 265
        protected void reload() {
266
            LOGGER.info("reload list of tables");
264 267
            List<JDBCStoreParameters> tables = null;
265 268
            if(helper == null){
266 269
                this.setValue(tables);
......
662 665

  
663 666
    @Override
664 667
    public JDBCStoreParameters get(String name) throws DataException {
665
        JDBCStoreParameters params = this.getOpenParameters();
666
        params.setTable(name);
668
        JDBCStoreParameters params = this.getOpenParameters(name);
667 669
        return params;
668 670
    }
669 671

  
......
678 680
        String key = buildKeyForCachedTables(MODE_ALL, serverParams, false, SHOW_TABLES_AND_VIEWS); //???
679 681
        CachedValue<CustomResourcesConfig> cachedConfig = CACHED_CUSTOM_RESOURCES_CONFIG.get(key);
680 682
        if (cachedConfig != null) {
683
            LOG.info("Get CustomResourcesConfig from CACHE_1: "+!cachedConfig.isExpired());
681 684
            CustomResourcesConfig config = cachedConfig.get();
682
//            LOG.info("Return custom resource from CACHE.");
683 685
            return config;
684 686
        }
685 687
        JDBCStoreParameters params = this.helper.createOpenStoreParameters(this.getParameters());
686 688
        cachedConfig = new CachedCustomResourcesConfig(params);
687 689
        CACHED_CUSTOM_RESOURCES_CONFIG.put(key, cachedConfig);
690
        LOG.info("Get CustomResourcesConfig from CACHE_2: "+!cachedConfig.isExpired());
688 691
        return cachedConfig.get();
689 692
    }
690 693
    
......
693 696
        String key = buildKeyForCachedTables(MODE_ALL, serverParams, false, SHOW_TABLES_AND_VIEWS); //???
694 697
        CachedValue<CustomResourcesConfig> cachedConfig = CACHED_CUSTOM_RESOURCES_CONFIG.get(key);
695 698
        if (cachedConfig != null) {
699
            LOG.info("Force expire CustomResourcesConfig cache");
696 700
            cachedConfig.expired();
697 701
        }
698 702
    }
......
736 740
                } else {
737 741
                    resourcesTablename = config.getResourcesTablename(storeName);
738 742
                    if( StringUtils.isNotBlank(resourcesTablename) ) {
739
                        JDBCStoreParameters params = this.getOpenParameters();
740
                        params.setTable(resourcesTablename);
743
                        JDBCStoreParameters params = this.getOpenParameters(resourcesTablename);
741 744
                        customResourcesStorage = new JDBCResourcesStorage(
742 745
                                this.helper,
743 746
                                alternateResourcesStorage,
......
760 763
    public ResourcesStorage getResourcesStorage() {
761 764
        JDBCStoreParameters params;
762 765
        try {
763
            params = this.getOpenParameters();
764
            params.setTable(DatabaseWorkspaceManager.TABLE_RESOURCES_NAME);
766
            params = this.getOpenParameters(DatabaseWorkspaceManager.TABLE_RESOURCES_NAME);
767
//            params.setTable(DatabaseWorkspaceManager.TABLE_RESOURCES_NAME);
765 768
            JDBCResourcesStorage theResourcesStorage = new JDBCResourcesStorage(
766 769
                    this.helper,
767 770
                    null,
768 771
                    params,
769
                    "$ServerExplorer"
772
                    TABLENAME_SERVER_EXPLORER_MARK
770 773
            );
771 774
            return theResourcesStorage;
772 775
        } catch (DataException ex) {
......
842 845
        
843 846
        if (StringUtils.isNotBlank(resourcesTableName)) {
844 847
            try {
845
                params = this.getOpenParameters();
846
                params.setTable(resourcesTableName);
848
                params = this.getOpenParameters(resourcesTableName);
847 849
                JDBCResourcesStorage resourcesStorage = new JDBCResourcesStorage(
848 850
                        this.helper,
849 851
                        null,
......
981 983
        return this.helper.getTransaction();
982 984
    }
983 985

  
986
    private JDBCStoreParameters getOpenParameters(String tableName) throws DataException {
987
        //No esta claro si se debe hacer este bucle o no. NO BORRAR ALEGREMENTE
988
        
989
//        List<JDBCStoreParameters> tables = this.list();
990
//        for (JDBCStoreParameters params : tables) {
991
//            String theTableName = params.getTable();
992
//            if (StringUtils.equals(theTableName, tableName)) {
993
//                return params;
994
//            }
995
//        }
996
        JDBCStoreParameters p = this.getOpenParameters();
997
        p.setTable(tableName);
998
        return p;
999
    }
984 1000
}
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
34 34
import java.io.OutputStream;
35 35
import java.net.URL;
36 36
import java.util.ArrayList;
37
import java.util.Collections;
37 38
import java.util.HashMap;
39
import java.util.HashSet;
38 40
import java.util.List;
39 41
import java.util.Map;
42
import java.util.Set;
40 43
import org.apache.commons.codec.digest.DigestUtils;
41 44
import org.apache.commons.io.FileUtils;
45
import org.apache.commons.io.FilenameUtils;
42 46
import org.apache.commons.io.IOUtils;
43 47
import org.apache.commons.io.output.NullOutputStream;
44 48
import org.apache.commons.lang3.StringUtils;
......
51 55
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_RESOURCES_NAME;
52 56
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_RESOURCES_RESOURCE;
53 57
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_RESOURCES_NAME;
54
import org.gvsig.fmap.dal.exception.InitializeException;
55 58
import org.gvsig.fmap.dal.feature.EditableFeature;
56 59
import org.gvsig.fmap.dal.feature.Feature;
60
import org.gvsig.fmap.dal.feature.FeatureSet;
57 61
import org.gvsig.fmap.dal.feature.FeatureStore;
58 62
import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
59 63
import org.gvsig.fmap.dal.store.jdbc.exception.SQLRuntimeException;
......
78 82
public class JDBCResourcesStorage extends AbstractResourcesStorage {
79 83

  
80 84
    private static final Logger LOGGER = LoggerFactory.getLogger(JDBCResourcesStorage.class);
85
    public static final String TABLENAME_SERVER_EXPLORER_MARK = "$ServerExplorer";
86

  
81 87
    private final JDBCHelper helper;
82 88

  
83 89
    private static class ExistsResourcesCache extends CachedValue<Map<String,Boolean>> {
84 90
        @Override
85 91
        protected void reload() {
92
            LOGGER.info("reload ExistsResourcesCache");
86 93
            this.setValue(new HashMap<>());
87 94
        }        
88 95
    }
......
164 171
        
165 172
        private byte[] retrieveResource() throws Exception {
166 173
            ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder();
167
            String filter = builder.eq(
168
                    builder.column(FIELD_RESOURCES_NAME),
169
                    builder.constant(this.getTableName() + "." + this.name)
170
            ).toString();
174
            
175
            String filter;
176
            if (StringUtils.equalsIgnoreCase(this.getTableName(), TABLENAME_SERVER_EXPLORER_MARK)) {
177
                filter = builder.eq(
178
                        builder.column(FIELD_RESOURCES_NAME),
179
                        builder.constant(this.name)
180
                ).toString();
181

  
182
            } else {
183
                filter = builder.eq(
184
                        builder.column(FIELD_RESOURCES_NAME),
185
                        builder.constant(this.getTableName() + "." + this.name)
186
                ).toString();
187
            }
188
            
171 189
            OperationsFactory operations = this.storage.helper.getOperations();
172 190
            RetrieveValueOperation op = operations.createRetrieveValue(
173 191
                    operations.createTableReference(this.getStoreParameters()),
......
187 205
                        this.getStoreParameters()
188 206
                );
189 207
                ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder();
190
                String filter = builder.eq(
191
                        builder.column(FIELD_RESOURCES_NAME),
192
                        builder.constant(this.getTableName() + "." + this.name)
193
                ).toString();
208
                String filter;
209
                if (StringUtils.equalsIgnoreCase(this.getTableName(), TABLENAME_SERVER_EXPLORER_MARK)) {
210
                    filter = builder.eq(
211
                            builder.column(FIELD_RESOURCES_NAME),
212
                            builder.constant(this.name)
213
                    ).toString();
214

  
215
                } else {
216
                    filter = builder.eq(
217
                            builder.column(FIELD_RESOURCES_NAME),
218
                            builder.constant(this.getTableName() + "." + this.name)
219
                    ).toString();
220
                }
194 221
                Feature feature = store.findFirst(filter);
195 222
                if (feature == null) {
196 223
                    return null;
......
217 244
                if( f.exists() ) {
218 245
                  return true;
219 246
                }
220
//                DataManager dataManager = DALLocator.getDataManager();
221
//                store = (FeatureStore) dataManager.openStore(
222
//                        this.getStoreParameters().getDataStoreName(),
223
//                        this.getStoreParameters()
224
//                );
225
//                ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder();
226
//                String filter = builder.eq(
227
//                        builder.column(FIELD_RESOURCES_NAME),
228
//                        builder.constant(this.getTableName()+"."+this.name)
229
//                ).toString();
230
//                Feature feature = store.findFirst(filter);
231 247
                byte[] resource = retrieveResource();
232 248
                boolean exists = resource!=null;
233 249
                if( resource!=null ) {
......
258 274
                        this.getStoreParameters()
259 275
                );
260 276
                ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder();
261
                String filter = builder.eq(
262
                        builder.column(FIELD_RESOURCES_NAME),
263
                        builder.constant(this.getTableName()+"."+this.name)
264
                ).toString();
277
                String filter;
278
                if (StringUtils.equalsIgnoreCase(this.getTableName(), TABLENAME_SERVER_EXPLORER_MARK)) {
279
                    filter = builder.eq(
280
                            builder.column(FIELD_RESOURCES_NAME),
281
                            builder.constant(this.name)
282
                    ).toString();
283

  
284
                } else {
285
                    filter = builder.eq(
286
                            builder.column(FIELD_RESOURCES_NAME),
287
                            builder.constant(this.getTableName() + "." + this.name)
288
                    ).toString();
289

  
290
                }
291
                
265 292
                Feature feature = store.findFirst(filter);
266 293
                if(feature != null){
267 294
                    store.edit();
......
280 307
        }
281 308

  
282 309
        private Pair<String,String> getCacheID() {
283
          byte[] data = this.getStoreParameters().toByteArray();
284
          ImmutablePair<String, String> r = new ImmutablePair<>(
285
                  DigestUtils.md5Hex(data), 
286
                  this.getTableName()+"."+this.name
287
          );
310
            byte[] data = this.getStoreParameters().toByteArray();
311
            ImmutablePair<String, String> r;
312
            if (StringUtils.equalsIgnoreCase(this.getTableName(), TABLENAME_SERVER_EXPLORER_MARK)) {
313
                r = new ImmutablePair<>(
314
                        DigestUtils.md5Hex(data), 
315
                        this.name
316
                );
317
            } else {
318
                r = new ImmutablePair<>(
319
                        DigestUtils.md5Hex(data), 
320
                        this.getTableName()+"."+this.name
321
                );
322
            }
288 323
          return r;
289 324
        }
290 325
        
......
366 401
        }
367 402
        
368 403
        private InputStream getInputStream() throws IOException {
369
//            FeatureStore store = null;
370 404
            try {
371
//                DataManager dataManager = DALLocator.getDataManager();
372
//                store = (FeatureStore) dataManager.openStore(
373
//                        this.getStoreParameters().getDataStoreName(),
374
//                        this.getStoreParameters()
375
//                );
376
//                ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder();
377
//                String filter = builder.eq(
378
//                        builder.column(FIELD_RESOURCES_NAME),
379
//                        builder.constant(this.getTableName()+"."+this.name)
380
//                ).toString();
381
//                Feature feature = store.findFirst(filter);
382
//                if (feature == null) {
383
//                    return null;
384
//                }
385
//                byte[] resource = feature.getByteArray(FIELD_RESOURCES_RESOURCE);
386 405
                byte[] resource = retrieveResource();
387 406
                InputStream is = new ByteArrayInputStream(resource);
388 407
                return is;
389 408
            } catch (Throwable ex) {
390 409
                LOGGER.warn("Can't access to the resoure '" + this.getURL() + "'.", ex);
391
//            } finally {
392
//                DisposeUtils.disposeQuietly(store);
393 410
            }
394 411
            return null;
395 412
        }
......
439 456
                    );
440 457
                    store.edit();
441 458
                    ExpressionBuilder builder = ExpressionUtils.createExpressionBuilder();
442
                    String filter = builder.eq(
443
                            builder.column(FIELD_RESOURCES_NAME),
444
                            builder.constant(this.getTableName()+"."+this.name)
445
                    ).toString();
459
                    String filter;
460
                    if (StringUtils.equalsIgnoreCase(this.getTableName(), TABLENAME_SERVER_EXPLORER_MARK)) {
461
                        filter = builder.eq(
462
                                builder.column(FIELD_RESOURCES_NAME),
463
                                builder.constant(this.name)
464
                        ).toString();
465

  
466
                    } else {
467
                        filter = builder.eq(
468
                                builder.column(FIELD_RESOURCES_NAME),
469
                                builder.constant(this.getTableName() + "." + this.name)
470
                        ).toString();
471
                    }
472

  
446 473
                    Feature feature = store.findFirst(filter);
447 474
                    EditableFeature efeature;
448 475
                    if (feature == null) {
449 476
                        efeature = store.createNewFeature();
450
                        efeature.set(FIELD_RESOURCES_NAME, this.getTableName()+"."+this.name);
477
                        
478
                        if (StringUtils.equalsIgnoreCase(this.getTableName(), TABLENAME_SERVER_EXPLORER_MARK)) {
479
                            efeature.set(FIELD_RESOURCES_NAME, this.name);
480
                        } else {
481
                            efeature.set(FIELD_RESOURCES_NAME, this.getTableName()+"."+this.name);
482
                        }
451 483
                        efeature.set(FIELD_RESOURCES_RESOURCE, ((ByteArrayOutputStream)this.out).toByteArray());
452 484
                        store.insert(efeature);
453 485
                    } else {
......
516 548
    }
517 549

  
518 550
    @Override
551
    public List<String> getResourceNames() {
552
        if( this.alternativeStorage!=null ) {
553
            List<String> names = this.alternativeStorage.getResourceNames();
554
            return names;
555
        }
556
        if (this.resourcesStoreParameters == null) {
557
            return Collections.EMPTY_LIST;
558
        }
559
        
560
        FeatureStore store = null;
561
        try {
562
            DataManager dataManager = DALLocator.getDataManager();
563
            Set<String> typeNames = new HashSet<>();
564
            store = (FeatureStore) dataManager.openStore(
565
                    this.resourcesStoreParameters.getDataStoreName(),
566
                    this.resourcesStoreParameters
567
            );
568
            FeatureSet featureSet = store.getFeatureSet();
569
            for (Feature feature : featureSet) {
570
                String resName = feature.getString(FIELD_RESOURCES_NAME);
571
                if (StringUtils.equalsIgnoreCase(tableName, TABLENAME_SERVER_EXPLORER_MARK)) {
572
                    typeNames.add(resName);
573
                } else {
574
                    String resTypeName = FilenameUtils.getExtension(resName);
575
                    typeNames.add(resTypeName);
576
                }
577
            }
578
            return new ArrayList<>(typeNames);
579
        } catch (Throwable ex) {
580
            LOGGER.warn("Can't get resources for '" + this.resourcesStoreParameters.getUrl() + "'.", ex);
581
            return null;
582
            
583
        } finally {
584
            DisposeUtils.disposeQuietly(store);
585
        }
586
    }
587
    
588
    
589

  
590
    @Override
519 591
    public Resource getResource(String name) {
520 592
        if( this.alternativeStorage!=null ) {
521 593
            Resource r = this.alternativeStorage.getResource(name);
......
583 655
    }
584 656

  
585 657
    @Override
658
    public boolean add(String resourceName, InputStream is) {
659
        DataBaseResource res = new DataBaseResource(this, resourceName);
660
        try {
661
            IOUtils.copy(is, res.asOutputStream());
662
            res.close();
663
            is.close();
664
            return true;
665
        } catch (IOException ex) {
666
            return false;
667
        }
668
    }
669

  
670
    
671
    @Override
586 672
    public boolean remove(String resourceName) {
587 673
        if( this.alternativeStorage!=null ) {
588 674
            try {
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.lib/src/main/java/org/gvsig/fmap/dal/serverexplorer/db/DBServerExplorerParameters.java
131 131
		this.setDynValue(PASSWORD_PARAMTER_NAME, password);
132 132
	}
133 133

  
134
    @Override
135
    public boolean isTheSameServerExplorer(DataServerExplorerParameters params) {
136
        return false;
137
    }
138

  
139
      
134 140
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.lib/src/main/java/org/gvsig/fmap/dal/store/db/DBStoreParameters.java
28 28
import org.gvsig.fmap.dal.feature.Feature;
29 29
import org.gvsig.fmap.dal.feature.OpenFeatureStoreParameters;
30 30
import org.gvsig.fmap.dal.serverexplorer.db.DBConnectionParameter;
31
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
31
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
32 32
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
33 33
import org.gvsig.fmap.geom.Geometry;
34 34
import org.gvsig.fmap.geom.primitive.Envelope;
......
40 40
 * @author jmvivo
41 41
 *
42 42
 */
43
public abstract class DBStoreParameters extends AbstractDataParameters
43
public abstract class DBStoreParameters extends AbstractDataStoreParameters
44 44
		implements
45 45
		OpenFeatureStoreParameters, DBConnectionParameter {
46 46

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.lib/src/main/java/org/gvsig/fmap/dal/store/db/DBNewStoreParameters.java
27 27
import org.gvsig.fmap.dal.feature.FeatureType;
28 28
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
29 29
import org.gvsig.fmap.dal.serverexplorer.db.DBConnectionParameter;
30
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
30
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
31 31
import org.gvsig.fmap.dal.spi.DataStoreProviderServices;
32 32
import org.gvsig.tools.dynobject.DelegatedDynObject;
33 33

  
......
38 38
 * @author jmvivo
39 39
 *
40 40
 */
41
public abstract class DBNewStoreParameters extends AbstractDataParameters
41
public abstract class DBNewStoreParameters extends AbstractDataStoreParameters
42 42
        implements NewFeatureStoreParameters, DBConnectionParameter {
43 43

  
44 44
    public static final String PARAMETERS_DEFINITION_NAME = "DBNewStoreParameters";
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/AbstractStoresRepository.java
95 95
    @Override
96 96
    public boolean contains(DataStoreParameters parameters) {
97 97
        for (DataStoreParameters currentParameters : this) {
98
            if( parameters.equals(currentParameters) ) {
98
            if( parameters.isTheSameStore(currentParameters) ) {
99 99
                return true;
100 100
            }
101 101
        }
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/DataServerExplorerParameters.java
46 46
         */
47 47
        public String getProviderName();
48 48

  
49
    public boolean isTheSameServerExplorer(DataServerExplorerParameters params);
50

  
49 51
}
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/DataStoreParameters.java
61 61
	 * @return a String containing the DataStore's description
62 62
	 */
63 63
	public abstract String getDescription();
64
        
65
        public boolean isTheSameStore(DataStoreParameters params);
66

  
64 67
}
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/DatabaseWorkspaceManager.java
81 81

  
82 82
    public DataServerExplorer getServerExplorer();
83 83
    
84
    public DataServerExplorerParameters getServerExplorerParameters();
85
    
84 86
    /**
85 87
     * Returns the label of this workspace.
86 88
     * 
......
183 185
     */
184 186
    public ResourcesStorage getAlternativeResourcesStorage(String tableName);
185 187
    
188
    public boolean hasAlternativeResourcesStorage();
189

  
186 190
    public void setAlternativeResourcesStorage(String resourcesPath);
187 191
    
188 192
    /**
......
208 212
    public void createTableRepository(String tableName);
209 213
    
210 214
    public void createTableResources(String tableName);
215
    
216
    public boolean isConnected();
217
    
218
    public String getLabelOrId();
211 219
}
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/OpenDataStoreParameters.java
4 4

  
5 5

  
6 6
public interface OpenDataStoreParameters extends DataStoreParameters {
7
    
7

  
8 8
}
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/DataManager.java
583 583
    public DatabaseWorkspaceManager getDatabaseWorkspace(String name);
584 584
    
585 585
    public DatabaseWorkspaceManager getDatabaseWorkspace(DataStoreParameters params);
586
    
587
    public DatabaseWorkspaceManager getDatabaseWorkspace(DataServerExplorerParameters params);
586 588

  
587 589
    public void writeDALResource(ResourcesStorage resources, DataStore store);
588 590
    
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/raster/spi/AbstractOpenRasterStoreParameters.java
25 25
import java.io.File;
26 26
import java.io.IOException;
27 27
import java.util.List;
28

  
29 28
import org.apache.commons.io.FileUtils;
30 29
import org.apache.commons.io.FilenameUtils;
31 30
import org.apache.commons.lang3.StringUtils;
32 31
import org.cresques.cts.ICRSFactory;
33 32
import org.cresques.cts.IProjection;
34
import org.slf4j.Logger;
35
import org.slf4j.LoggerFactory;
36

  
37 33
import org.gvsig.fmap.crs.CRSFactory;
38 34
import org.gvsig.fmap.dal.DataStore;
39 35
import org.gvsig.fmap.dal.raster.OpenRasterStoreParameters;
40
import org.gvsig.fmap.dal.spi.AbstractDataParameters;
36
import org.gvsig.fmap.dal.spi.AbstractDataStoreParameters;
37
import org.slf4j.Logger;
38
import org.slf4j.LoggerFactory;
41 39

  
42 40

  
43 41
/**
44 42
 * @author fdiaz
45 43
 *
46 44
 */
47
public abstract class AbstractOpenRasterStoreParameters extends AbstractDataParameters implements OpenRasterStoreParameters{
45
public abstract class AbstractOpenRasterStoreParameters extends AbstractDataStoreParameters implements OpenRasterStoreParameters{
48 46

  
49 47
    private static final Logger logger = LoggerFactory.getLogger(AbstractOpenRasterStoreParameters.class);
50 48
    public static final String WLD_PARAMS_NAME= "wldParams";
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.spi/src/main/java/org/gvsig/fmap/dal/spi/AbstractDataStoreParameters.java
1
/*
2
 * To change this license header, choose License Headers in Project Properties.
3
 * To change this template file, choose Tools | Templates
4
 * and open the template in the editor.
5
 */
6
package org.gvsig.fmap.dal.spi;
7

  
8
import org.gvsig.fmap.dal.DataStoreParameters;
9

  
10
/**
11
 *
12
 * @author fdiaz
13
 */
14
public abstract class AbstractDataStoreParameters extends AbstractDataParameters implements DataStoreParameters {
15

  
16
    @Override
17
    public boolean isTheSameStore(DataStoreParameters params) {
18
        return this.equals(params);
19
    }
20
    
21
}
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/ApplicationManager.java
349 349

  
350 350
    public void refreshDocument(FeatureStore store);
351 351
    
352
    public void refreshDocument(DataStoreParameters params);
353

  
354
    
352 355
}
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/imp/DefaultApplicationManager.java
31 31
import java.util.List;
32 32
import java.util.Map;
33 33
import javax.swing.JComponent;
34

  
35 34
import javax.swing.JFileChooser;
36 35
import javax.swing.SwingUtilities;
37 36
import javax.swing.event.HyperlinkListener;
38 37
import javax.swing.filechooser.FileFilter;
39 38
import javax.swing.tree.TreeModel;
40

  
39
import org.apache.commons.lang3.StringUtils;
41 40
import org.cresques.cts.IProjection;
42 41
import org.gvsig.about.AboutLocator;
43 42
import org.gvsig.about.AboutManager;
......
71 70
import org.gvsig.fmap.dal.DataManager;
72 71
import org.gvsig.fmap.dal.DataStore;
73 72
import org.gvsig.fmap.dal.DataStoreParameters;
73
import org.gvsig.fmap.dal.exception.DataException;
74 74
import org.gvsig.fmap.dal.feature.FeatureStore;
75 75
import org.gvsig.fmap.geom.GeometryLocator;
76 76
import org.gvsig.fmap.geom.GeometryManager;
......
78 78
import org.gvsig.fmap.mapcontext.MapContextLocator;
79 79
import org.gvsig.fmap.mapcontext.MapContextManager;
80 80
import org.gvsig.fmap.mapcontext.layers.FLayer;
81
import org.gvsig.fmap.mapcontext.layers.operations.SingleLayer;
81 82
import org.gvsig.fmap.mapcontrol.CompoundLayersTreeModel;
82 83
import org.gvsig.fmap.mapcontrol.CompoundStoresTreeModel;
83 84
import org.gvsig.fmap.mapcontrol.MapControlLocator;
......
669 670
    }
670 671

  
671 672
    @Override
672
    public void refreshDocument(FeatureStore store){
673
        if(store == null){
673
    public void refreshDocument(FeatureStore store) {
674
        if (store == null) {
674 675
            return;
675 676
        }
677
        refreshDocument(store.getParameters());
678
    }
679

  
680
    @Override
681
    public void refreshDocument(DataStoreParameters params) {
682
        if (params == null) {
683
            return;
684
        }
676 685
        ProjectManager projectManager = this.getProjectManager();
677 686
        Project project = projectManager.getCurrentProject();
678 687
        for (Document doc : project.getDocuments()) {
679
            if( doc.contains(store) ) {
688
            if (doc.contains(params)) {
689
                if (StringUtils.equals(doc.getTypeName(), ViewManager.TYPENAME)) {
690
                    ViewDocument view = (ViewDocument) doc;
691
                    for (Iterator<FLayer> it = view.deepiterator(); it.hasNext();) {
692
                        FLayer layer = it.next();
693
                        if (layer instanceof SingleLayer) {
694
                            DataStore layerStore = ((SingleLayer) layer).getDataStore();
695
                            if ( params.isTheSameStore(layerStore.getParameters())) {
696
                                try {
697
                                    layerStore.refresh();
698
                                } catch (DataException ex) {
699
                                    logger.debug("Can't refresh store "+layerStore.getFullName(), ex);
700
                                }
701
                            }
702
                        }
703
                    }
704
                }
680 705
                doc.refresh();
681 706
            }
682 707
        }
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/documents/view/BaseViewDocument.java
45 45
import org.gvsig.app.project.documents.DocumentManager;
46 46
import org.gvsig.app.project.documents.view.info.gui.HTMLInfoToolPanel;
47 47
import org.gvsig.fmap.dal.DataStore;
48
import org.gvsig.fmap.dal.DataStoreParameters;
48 49
import org.gvsig.fmap.dal.feature.FeatureStore;
49 50
import org.gvsig.fmap.geom.Geometry;
50 51
import org.gvsig.fmap.geom.GeometryLocator;
......
424 425
        if( value == null ) {
425 426
            return false;
426 427
        }
427
        if( !(value instanceof FeatureStore) ) {
428
        DataStoreParameters params;
429
        
430
        if( (value instanceof FeatureStore) ) {
431
            params = ((FeatureStore) value).getParameters();
432
        } else if(value instanceof DataStoreParameters){
433
            params = (DataStoreParameters) value;
434
        } else {
428 435
            return false;
429 436
        }
430
        String storeFullName = ((FeatureStore)value).getFullName();
437
        
431 438
        for (Iterator<FLayer> it = this.deepiterator(); it.hasNext();) {
432 439
            FLayer layer = it.next();
433 440
            if(layer instanceof FLyrVect){
434
                if( StringUtils.equals(((FLyrVect) layer).getFeatureStore().getFullName(), storeFullName)){
441
                if(((FLyrVect) layer).getFeatureStore().getParameters().isTheSameStore(params)){
435 442
                    return true;
436 443
                }
437 444
            }
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/resourcesmanager/ResourcesLoaderPanelView.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<object classname="com.jeta.forms.store.memento.FormPackage">
4
 <at name="fileversion">
5
  <object classname="com.jeta.forms.store.memento.FormsVersion2">
6
   <at name="major">2</at>
7
   <at name="minor">0</at>
8
   <at name="sub">0</at>
9
  </object>
10
 </at>
11
 <at name="form">
12
  <object classname="com.jeta.forms.store.memento.FormMemento">
13
   <super classname="com.jeta.forms.store.memento.ComponentMemento">
14
    <at name="cellconstraints">
15
     <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
16
      <at name="column">1</at>
17
      <at name="row">1</at>
18
      <at name="colspan">1</at>
19
      <at name="rowspan">1</at>
20
      <at name="halign">default</at>
21
      <at name="valign">default</at>
22
      <at name="insets" object="insets">0,0,0,0</at>
23
     </object>
24
    </at>
25
    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
26
   </super>
27
   <at name="id">/home/fdiaz/projects/gvSIG/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/extension/resourcesmanager/ResourcesLoaderPanelView.xml</at>
28
   <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:GROW(1.0),CENTER:2DLU:NONE</at>
29
   <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
30
   <at name="components">
31
    <object classname="java.util.LinkedList">
32
     <item >
33
      <at name="value">
34
       <object classname="com.jeta.forms.store.memento.BeanMemento">
35
        <super classname="com.jeta.forms.store.memento.ComponentMemento">
36
         <at name="cellconstraints">
37
          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
38
           <at name="column">2</at>
39
           <at name="row">2</at>
40
           <at name="colspan">1</at>
41
           <at name="rowspan">1</at>
42
           <at name="halign">default</at>
43
           <at name="valign">default</at>
44
           <at name="insets" object="insets">0,0,0,0</at>
45
          </object>
46
         </at>
47
         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
48
        </super>
49
        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
50
        <at name="beanclass">com.jeta.forms.components.border.TitledBorderLabel</at>
51
        <at name="beanproperties">
52
         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
53
          <at name="classname">com.jeta.forms.components.border.TitledBorderLabel</at>
54
          <at name="properties">
55
           <object classname="com.jeta.forms.store.support.PropertyMap">
56
            <at name="border">
57
             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
58
              <super classname="com.jeta.forms.store.properties.BorderProperty">
59
               <at name="name">border</at>
60
              </super>
61
              <at name="borders">
62
               <object classname="java.util.LinkedList">
63
                <item >
64
                 <at name="value">
65
                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
66
                   <super classname="com.jeta.forms.store.properties.BorderProperty">
67
                    <at name="name">border</at>
68
                   </super>
69
                  </object>
70
                 </at>
71
                </item>
72
               </object>
73
              </at>
74
             </object>
75
            </at>
76
            <at name="name">lblConnection</at>
77
            <at name="width">1283</at>
78
            <at name="text">_Connection</at>
79
            <at name="height">19</at>
80
           </object>
81
          </at>
82
         </object>
83
        </at>
84
       </object>
85
      </at>
86
     </item>
87
     <item >
88
      <at name="value">
89
       <object classname="com.jeta.forms.store.memento.FormMemento">
90
        <super classname="com.jeta.forms.store.memento.ComponentMemento">
91
         <at name="cellconstraints">
92
          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
93
           <at name="column">2</at>
94
           <at name="row">3</at>
95
           <at name="colspan">1</at>
96
           <at name="rowspan">1</at>
97
           <at name="halign">default</at>
98
           <at name="valign">default</at>
99
           <at name="insets" object="insets">0,0,0,0</at>
100
          </object>
101
         </at>
102
         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
103
        </super>
104
        <at name="id">embedded.704354743</at>
105
        <at name="rowspecs">CENTER:DEFAULT:NONE</at>
106
        <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
107
        <at name="components">
108
         <object classname="java.util.LinkedList">
109
          <item >
110
           <at name="value">
111
            <object classname="com.jeta.forms.store.memento.BeanMemento">
112
             <super classname="com.jeta.forms.store.memento.ComponentMemento">
113
              <at name="cellconstraints">
114
               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
115
                <at name="column">1</at>
116
                <at name="row">1</at>
117
                <at name="colspan">1</at>
118
                <at name="rowspan">1</at>
119
                <at name="halign">default</at>
120
                <at name="valign">default</at>
121
                <at name="insets" object="insets">0,0,0,0</at>
122
               </object>
123
              </at>
124
              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
125
             </super>
126
             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
127
             <at name="beanclass">javax.swing.JComboBox</at>
128
             <at name="beanproperties">
129
              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff