Revision 44346 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

View differences:

DefaultDatabaseWorkspaceManager.java
1 1
package org.gvsig.fmap.dal.impl;
2 2

  
3
import java.io.File;
3 4
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
4 5
import org.apache.commons.lang3.StringUtils;
6
import org.apache.commons.lang3.mutable.Mutable;
7
import org.apache.commons.lang3.mutable.MutableObject;
5 8
import org.gvsig.expressionevaluator.ExpressionBuilder;
6 9
import org.gvsig.expressionevaluator.ExpressionUtils;
7 10
import org.gvsig.fmap.dal.DALLocator;
......
10 13
import org.gvsig.fmap.dal.DataServerExplorerParameters;
11 14
import org.gvsig.fmap.dal.DataStoreParameters;
12 15
import org.gvsig.fmap.dal.DataTypes;
16
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYID;
17
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.CONFIG_NAME_STORESREPOSITORYLABEL;
18
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_CONFIGURATION_NAME;
19
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_CONFIGURATION_VALUE;
13 20
import org.gvsig.fmap.dal.StoresRepository;
14 21
import org.gvsig.fmap.dal.feature.EditableFeature;
15 22
import org.gvsig.fmap.dal.feature.EditableFeatureType;
16 23
import org.gvsig.fmap.dal.feature.Feature;
17 24
import org.gvsig.fmap.dal.feature.FeatureStore;
18
//import org.gvsig.fmap.dal.store.jdbc.JDBCNewStoreParameters;
19
//import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorer;
20
//import org.gvsig.fmap.dal.store.jdbc.JDBCServerExplorerParameters;
21
//import org.gvsig.fmap.dal.store.jdbc.JDBCStoreParameters;
22 25
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_REPOSITORY_NAME;
26
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_REPOSITORY_PARAMETERS;
27
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_RESOURCES_NAME;
28
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.FIELD_RESOURCES_RESOURCE;
29
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_CONFIGURATION;
30
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_CONFIGURATION_NAME;
31
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_REPOSITORY;
32
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_REPOSITORY_NAME;
33
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_RESOURCES;
34
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_RESOURCES_NAME;
23 35
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
36
import org.gvsig.tools.resourcesstorage.FilesResourcesStorage;
37
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
24 38
import org.slf4j.Logger;
25 39
import org.slf4j.LoggerFactory;
26 40

  
......
29 43
 * @author jjdelcerro
30 44
 */
31 45
@SuppressWarnings("UseSpecificCatch")
32
public class DefaultDatabaseWorkspaceManager implements DatabaseWorkspaceManager {
46
public class DefaultDatabaseWorkspaceManager 
47
        implements DatabaseWorkspaceManager 
48
    {
33 49
    
34 50
    private static final Logger LOGGER = LoggerFactory.getLogger(DefaultDatabaseWorkspaceManager.class);
35

  
36
    private final DataServerExplorerParameters connection;
51
    
52
    private final DataServerExplorerParameters serverParameters;
37 53
    private Boolean existsConfiguration = null;
38 54
    private StoresRepository storesRepository;
55
    private Mutable<ResourcesStorage> alternativeResourcesStorage = null;
39 56
    
40
    public DefaultDatabaseWorkspaceManager(DataServerExplorerParameters connection) {
41
        this.connection = connection;
57
    
58
    public DefaultDatabaseWorkspaceManager(DataServerExplorerParameters serverParameters) {
59
        this.serverParameters = serverParameters;
42 60
    }
43 61
    
44 62
    @Override
63
    public String getId() {
64
        String id = this.get(CONFIG_NAME_STORESREPOSITORYID);
65
        return id;
66
    }
67
    
68
    @Override
69
    public String getLabel() {
70
        String label = this.get(CONFIG_NAME_STORESREPOSITORYLABEL);
71
        return label;
72
    }
73
    
74
    @Override
45 75
    public boolean existsTable(int tableid) {
46 76
        switch(tableid) {
47 77
            case TABLE_RESOURCES:
......
107 137
        try {
108 138
            DataManager dataManager = DALLocator.getDataManager();
109 139
            DataServerExplorer server = dataManager.openServerExplorer(
110
                    this.connection.getProviderName(),
111
                    this.connection
140
                    this.serverParameters.getProviderName(),
141
                    this.serverParameters
112 142
            );
113 143
            for (DataStoreParameters params : server.list()) {
114 144
                String theTableName = (String) params.getDynValue("Table");
......
126 156
        try {
127 157
            DataManager dataManager = DALLocator.getDataManager();
128 158
            DataServerExplorer server = dataManager.openServerExplorer(
129
                    this.connection.getProviderName(),
130
                    this.connection
159
                    this.serverParameters.getProviderName(),
160
                    this.serverParameters
131 161
            );
132 162
            DataStoreParameters params = server.get(tableName);
133 163
            if( params!=null ) {
......
147 177
        try {
148 178
            DataManager dataManager = DALLocator.getDataManager();
149 179
            DataServerExplorer server = dataManager.openServerExplorer(
150
                    this.connection.getProviderName(),
151
                    this.connection
180
                    this.serverParameters.getProviderName(),
181
                    this.serverParameters
152 182
            );
153 183
            DataStoreParameters params = server.get(tableName);
154 184
            if( params!=null ) {
......
164 194
        try {
165 195
            DataManager dataManager = DALLocator.getDataManager();
166 196
            DataServerExplorer server = dataManager.openServerExplorer(
167
                    this.connection.getProviderName(),
168
                    this.connection
197
                    this.serverParameters.getProviderName(),
198
                    this.serverParameters
169 199
            );
170 200
            NewFeatureStoreParameters params = (NewFeatureStoreParameters) server.getAddParameters(tableName);
171 201
            EditableFeatureType ft = params.getDefaultFeatureType();
......
185 215
        try {
186 216
            DataManager dataManager = DALLocator.getDataManager();
187 217
            DataServerExplorer server = dataManager.openServerExplorer(
188
                    this.connection.getProviderName(),
189
                    this.connection
218
                    this.serverParameters.getProviderName(),
219
                    this.serverParameters
190 220
            );
191 221
            NewFeatureStoreParameters params = (NewFeatureStoreParameters) server.getAddParameters(tableName);
192 222
            EditableFeatureType ft = params.getDefaultFeatureType();
......
206 236
        try {
207 237
            DataManager dataManager = DALLocator.getDataManager();
208 238
            DataServerExplorer server = dataManager.openServerExplorer(
209
                    this.connection.getProviderName(),
210
                    this.connection
239
                    this.serverParameters.getProviderName(),
240
                    this.serverParameters
211 241
            );
212 242
            NewFeatureStoreParameters params = (NewFeatureStoreParameters) server.getAddParameters(tableName);
213 243
            EditableFeatureType ft = params.getDefaultFeatureType();
......
301 331
            this.storesRepository = new DatabaseWorkspaceStoresRepository(
302 332
                    id,
303 333
                    label,
304
                    this.connection
334
                    this.serverParameters
305 335
            );
306 336
        }
307 337
        return this.storesRepository;
308 338
    }
339
    
340
    public boolean contains(DataStoreParameters parameters) {
341
        boolean c = this.getStoresRepository().contains(parameters);
342
        return c;
343
    }
309 344

  
310 345
    @Override
311 346
    public boolean canAnonymousUserWriteInTheTables() {
......
313 348
    }
314 349

  
315 350
    @Override
316
    public boolean storesRepositoryWriteEntry(String name, DataStoreParameters parameters) {
351
    public boolean writeStoresRepositoryEntry(String name, DataStoreParameters parameters) {
317 352
        try {
318 353
            byte[] data = parameters.toByteArray();
319 354
            if( data == null ) {
......
359 394
        return true;
360 395
        
361 396
    }
397
    
398
    @Override
399
    public ResourcesStorage getAlternativeResourcesStorage() {
400
        if( this.alternativeResourcesStorage==null ) {
401
            this.alternativeResourcesStorage = new MutableObject<>(null);
402
            String resourcesPath = this.get("ALTERNATIVE_RESOURCES_PATH");
403
            if( !StringUtils.isBlank(resourcesPath) ) {
404
                try {
405
                    resourcesPath = (String) ExpressionUtils.evaluate(resourcesPath);
406
                } catch(Throwable th) {
407
                    // Do nothing
408
                }
409
                File f = new File(resourcesPath);
410
                if( f.exists() ) {
411
                    ResourcesStorage resources = new FilesResourcesStorage(resourcesPath);
412
                    this.alternativeResourcesStorage.setValue(resources);
413
                }
414
            }
415
        }
416
        return this.alternativeResourcesStorage.getValue();
417
    }
418
    
419
    public void create(String id, String description) {
420
        if( !this.existsTable(TABLE_RESOURCES) ) {
421
            this.createTable(TABLE_RESOURCES);
422
        }
423
        if( !this.existsTable(TABLE_CONFIGURATION) ) {
424
            this.createTable(TABLE_CONFIGURATION);
425
        }
426
        if( !this.existsTable(TABLE_REPOSITORY) ) {
427
            this.createTable(TABLE_REPOSITORY);
428
        }
429
        this.set(CONFIG_NAME_STORESREPOSITORYID,id);
430
        this.set(CONFIG_NAME_STORESREPOSITORYLABEL,description);
431
        this.set(CONFIG_CAN_ANONYMOUS_USER_WRITE_IN_THE_TABLES,"true");
432
        this.set("ALTERNATIVE_RESOURCES_PATH","");
433
    }
362 434
}

Also available in: Unified diff