Revision 44328
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 | ||
---|---|---|
33 | 33 |
import org.apache.commons.lang3.tuple.ImmutablePair; |
34 | 34 |
import org.apache.commons.lang3.tuple.Pair; |
35 | 35 |
import org.gvsig.fmap.dal.DALLocator; |
36 |
import org.gvsig.fmap.dal.DataManager; |
|
36 | 37 |
import org.gvsig.fmap.dal.DataStore; |
37 | 38 |
import org.gvsig.fmap.dal.DataStoreParameters; |
38 | 39 |
import static org.gvsig.fmap.dal.DatabaseWorkspaceManager.TABLE_RESOURCES_NAME; |
... | ... | |
46 | 47 |
import org.gvsig.fmap.dal.feature.FeatureType; |
47 | 48 |
import org.gvsig.fmap.dal.SQLBuilder; |
48 | 49 |
import org.gvsig.fmap.dal.SQLBuilder.Privilege; |
50 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
|
49 | 51 |
import org.gvsig.fmap.dal.resource.spi.ResourceProvider; |
50 | 52 |
import org.gvsig.fmap.dal.serverexplorer.db.spi.AbstractDBServerExplorer; |
51 | 53 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters; |
... | ... | |
357 | 359 |
userAndPrivileges, |
358 | 360 |
additionalSQLs |
359 | 361 |
); |
360 |
return (boolean) createTable.perform(); |
|
362 |
boolean isOk = (boolean) createTable.perform(); |
|
363 |
if( !isOk ) { |
|
364 |
return false; |
|
365 |
} |
|
366 |
|
|
367 |
if( theParams instanceof NewFeatureStoreParameters ) { |
|
368 |
DataManager dataManager = DALLocator.getDataManager(); |
|
369 |
ResourcesStorage resources = this.getResourcesStorage(theParams); |
|
370 |
dataManager.writeDALResource(resources, ((NewFeatureStoreParameters) theParams).getDefaultFeatureType()); |
|
371 |
} |
|
372 |
return true; |
|
361 | 373 |
} |
362 | 374 |
|
363 | 375 |
@Override |
... | ... | |
393 | 405 |
return this.getHelper().createSQLBuilder(); |
394 | 406 |
} |
395 | 407 |
|
396 |
@Override |
|
397 |
public ResourcesStorage getResourcesStorage(DataStore dataStore) { |
|
398 |
if( this.resourcesStorage==null ) { |
|
399 |
try { |
|
400 |
List<JDBCStoreParameters> tables = this.list(); |
|
401 |
for (JDBCStoreParameters params : tables) { |
|
402 |
String theTableName = params.getTable(); |
|
403 |
if (StringUtils.equals(theTableName, TABLE_RESOURCES_NAME)) { |
|
404 |
this.resourcesStorage = new JDBCResourcesStorage( |
|
405 |
params, |
|
406 |
dataStore.getName() |
|
407 |
); |
|
408 |
return this.resourcesStorage; |
|
409 |
} |
|
408 |
private ResourcesStorage getResourcesStorage(DataStoreParameters parameters, String storeName) { |
|
409 |
try { |
|
410 |
List<JDBCStoreParameters> tables = this.list(); |
|
411 |
for (JDBCStoreParameters params : tables) { |
|
412 |
String theTableName = params.getTable(); |
|
413 |
if (StringUtils.equals(theTableName, TABLE_RESOURCES_NAME)) { |
|
414 |
JDBCResourcesStorage theResourcesStorage = new JDBCResourcesStorage( |
|
415 |
params, |
|
416 |
storeName |
|
417 |
); |
|
418 |
return theResourcesStorage; |
|
410 | 419 |
} |
411 |
this.resourcesStorage = new EmptyResourcesStorage(); |
|
412 |
} catch (Throwable ex) { |
|
413 |
LOG.warn("Can't retrieve reources storage from table '" + TABLE_RESOURCES_NAME + "' in '"+this.getParameters().getUrl()+"'.", ex); |
|
414 | 420 |
} |
421 |
} catch (Throwable ex) { |
|
422 |
LOG.warn("Can't retrieve reources storage from table '" + TABLE_RESOURCES_NAME + "' in '"+this.getParameters().getUrl()+"'.", ex); |
|
415 | 423 |
} |
416 |
return this.resourcesStorage; |
|
424 |
EmptyResourcesStorage theResourcesStorage = new EmptyResourcesStorage(); |
|
425 |
return theResourcesStorage; |
|
417 | 426 |
} |
427 |
|
|
428 |
|
|
429 |
@Override |
|
430 |
public ResourcesStorage getResourcesStorage(DataStoreParameters parameters) { |
|
431 |
if( parameters == null ) { |
|
432 |
throw new IllegalArgumentException("null is a valid value for parameters."); |
|
433 |
} |
|
434 |
String tableName; |
|
435 |
if( parameters instanceof JDBCNewStoreParameters) { |
|
436 |
tableName = ((JDBCNewStoreParameters)parameters).getTable(); |
|
437 |
} else if( parameters instanceof JDBCStoreParameters) { |
|
438 |
tableName = ((JDBCStoreParameters)parameters).getTable(); |
|
439 |
} else { |
|
440 |
throw new IllegalArgumentException("Required a JDBCStoreParameters or JDBCNewStoreParameters parameters, received "+parameters.getClass().getName()+"."); |
|
441 |
} |
|
442 |
return this.getResourcesStorage(parameters, tableName); |
|
443 |
} |
|
444 |
|
|
445 |
@Override |
|
446 |
public ResourcesStorage getResourcesStorage(DataStore dataStore) { |
|
447 |
return this.getResourcesStorage( |
|
448 |
(JDBCStoreParameters) dataStore.getParameters(), |
|
449 |
dataStore.getName() |
|
450 |
); |
|
451 |
} |
|
418 | 452 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.db/org.gvsig.fmap.dal.db.h2/src/main/java/org/gvsig/fmap/dal/store/h2/H2SpatialExplorer.java | ||
---|---|---|
33 | 33 |
if( ress instanceof EmptyResourcesStorage ) { |
34 | 34 |
String zipPath = this.getParameters().getFile().getAbsolutePath(); |
35 | 35 |
String zipPathName = FilenameUtils.removeExtension(zipPath); |
36 |
this.resourcesStorage = new ZipResourcesStorage(zipPathName, dataStore.getName());
|
|
36 |
ress = new ZipResourcesStorage(zipPathName, dataStore.getName());
|
|
37 | 37 |
} |
38 |
return this.resourcesStorage;
|
|
38 |
return ress;
|
|
39 | 39 |
} |
40 | 40 |
|
41 | 41 |
|
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 | ||
---|---|---|
49 | 49 |
import org.gvsig.tools.service.spi.Services; |
50 | 50 |
import org.gvsig.fmap.dal.expressionevaluator.FeatureAttributeEmulatorExpression; |
51 | 51 |
import org.gvsig.fmap.dal.feature.DataProfile; |
52 |
import org.gvsig.tools.util.UnmodifiableBasicMap;
|
|
52 |
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
|
|
53 | 53 |
|
54 | 54 |
/** |
55 | 55 |
* There are two top level management roles within DAL: data access and resource |
... | ... | |
509 | 509 |
public StoresRepository getStoresRepository(); |
510 | 510 |
|
511 | 511 |
public DatabaseWorkspaceManager createDatabaseWorkspaceManager(DataServerExplorerParameters connection); |
512 |
|
|
513 |
public void writeDALResource(ResourcesStorage resources, DataStore store); |
|
514 |
|
|
515 |
public void writeDALResource(ResourcesStorage resources, FeatureType featureType); |
|
512 | 516 |
|
513 | 517 |
} |
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/DataServerExplorer.java | ||
---|---|---|
80 | 80 |
|
81 | 81 |
public DataStoreParameters get(String name) throws DataException; |
82 | 82 |
|
83 |
public boolean exists(String name); |
|
84 |
|
|
85 |
public boolean exists(DataStoreParameters parameters); |
|
86 |
|
|
83 | 87 |
public static final int MODE_ALL = 0; |
84 | 88 |
public static final int MODE_FEATURE = 1; |
85 | 89 |
public static final int MODE_GEOMETRY = 2; |
... | ... | |
166 | 170 |
public File getResourcePath(DataStore dataStore, String resourceName) throws DataException; |
167 | 171 |
|
168 | 172 |
public ResourcesStorage getResourcesStorage(DataStore dataStore); |
173 |
|
|
174 |
public ResourcesStorage getResourcesStorage(DataStoreParameters parameters); |
|
169 | 175 |
} |
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/AbstractDataServerExplorer.java | ||
---|---|---|
1 | 1 |
package org.gvsig.fmap.dal.spi; |
2 | 2 |
|
3 | 3 |
import java.io.File; |
4 |
import java.util.List; |
|
5 | 4 |
import org.gvsig.fmap.dal.DataServerExplorerParameters; |
6 | 5 |
import org.gvsig.fmap.dal.DataServerExplorer_v2; |
7 | 6 |
import org.gvsig.fmap.dal.DataStore; |
... | ... | |
13 | 12 |
import org.gvsig.tools.exception.BaseException; |
14 | 13 |
import org.gvsig.tools.resourcesstorage.EmptyResourcesStorage; |
15 | 14 |
import org.gvsig.tools.resourcesstorage.ResourcesStorage; |
16 |
import org.gvsig.tools.resourcesstorage.ResourcesStorage.Resource; |
|
17 | 15 |
|
18 | 16 |
public abstract class AbstractDataServerExplorer extends AbstractDisposable implements DataServerExplorer_v2 { |
19 | 17 |
|
20 | 18 |
private DataServerExplorerParameters parameters; |
21 | 19 |
private final DataServerExplorerProviderServices providerServices; |
22 |
protected ResourcesStorage resourcesStorage = null; |
|
23 | 20 |
|
24 | 21 |
protected AbstractDataServerExplorer(DataServerExplorerParameters parameters, DataServerExplorerProviderServices providerServices) { |
25 | 22 |
this.parameters = parameters; |
... | ... | |
45 | 42 |
return null; |
46 | 43 |
} |
47 | 44 |
|
45 |
@Override |
|
46 |
public boolean exists(DataStoreParameters parameters) { |
|
47 |
return true; |
|
48 |
} |
|
49 |
|
|
50 |
@Override |
|
51 |
public boolean exists(String name) { |
|
52 |
return true; |
|
53 |
} |
|
54 |
|
|
48 | 55 |
@Deprecated |
49 | 56 |
@Override |
50 | 57 |
public File getResourcePath(DataStore dataStore, String resourceName) throws DataException { |
... | ... | |
53 | 60 |
|
54 | 61 |
@Override |
55 | 62 |
public ResourcesStorage getResourcesStorage(DataStore dataStore) { |
56 |
if( this.resourcesStorage==null ) { |
|
57 |
this.resourcesStorage = new EmptyResourcesStorage(); |
|
58 |
} |
|
59 |
return this.resourcesStorage; |
|
63 |
EmptyResourcesStorage resourcesStorage = new EmptyResourcesStorage(); |
|
64 |
return resourcesStorage; |
|
60 | 65 |
} |
61 | 66 |
|
62 | 67 |
@Override |
68 |
public ResourcesStorage getResourcesStorage(DataStoreParameters parameters) { |
|
69 |
EmptyResourcesStorage resourcesStorage = new EmptyResourcesStorage(); |
|
70 |
return resourcesStorage; |
|
71 |
} |
|
72 |
|
|
73 |
@Override |
|
63 | 74 |
public SQLBuilder createSQLBuilder() { |
64 | 75 |
return new SQLBuilderBase(); |
65 | 76 |
} |
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/impl/AbstractFilesystemServerExplorerProvider.java | ||
---|---|---|
29 | 29 |
|
30 | 30 |
import java.io.File; |
31 | 31 |
import org.apache.commons.io.FilenameUtils; |
32 |
import org.apache.commons.io.IOUtils; |
|
32 | 33 |
import org.gvsig.fmap.dal.DALLocator; |
33 | 34 |
import org.gvsig.fmap.dal.DataManager; |
34 | 35 |
|
... | ... | |
45 | 46 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters; |
46 | 47 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider; |
47 | 48 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices; |
49 |
import org.gvsig.tools.resourcesstorage.ResourcesStorage; |
|
48 | 50 |
|
49 | 51 |
/** |
50 | 52 |
* @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodrá</a> |
... | ... | |
53 | 55 |
|
54 | 56 |
@Override |
55 | 57 |
public String getResourceRootPathName(DataStore dataStore) { |
56 |
DataStoreParameters parameters = dataStore.getParameters(); |
|
58 |
return this.getResourceRootPathName(dataStore.getParameters()); |
|
59 |
} |
|
60 |
|
|
61 |
public String getResourceRootPathName(DataStoreParameters parameters) { |
|
57 | 62 |
if( parameters instanceof FilesystemStoreParameters ) { |
58 | 63 |
File f = ((FilesystemStoreParameters) parameters).getFile(); |
59 | 64 |
if( f != null ) { |
60 | 65 |
return FilenameUtils.removeExtension(f.getAbsolutePath()); |
61 | 66 |
} |
62 | 67 |
} |
63 |
if( dataStore.getParameters().hasDynValue(FileResource.NAME) ) {
|
|
64 |
Object obj = (dataStore.getParameters().getDynValue(FileResource.NAME));
|
|
68 |
if( parameters.hasDynValue(FileResource.NAME) ) {
|
|
69 |
Object obj = (parameters.getDynValue(FileResource.NAME));
|
|
65 | 70 |
if( obj != null ) { |
66 | 71 |
return removeFileExtension(new File(obj.toString())); |
67 | 72 |
} |
68 | 73 |
} |
69 | 74 |
return null; |
70 | 75 |
} |
71 |
|
|
76 |
|
|
72 | 77 |
protected String removeFileExtension(File file) { |
73 | 78 |
int whereDot = file.getName().lastIndexOf("."); |
74 | 79 |
if( (0 < whereDot) && (whereDot <= file.getName().length() - 2) ) { |
... | ... | |
143 | 148 |
} |
144 | 149 |
|
145 | 150 |
@Override |
146 |
public void initialize(FilesystemServerExplorerProviderServices serverExplorer) {
|
|
151 |
public void initialize(FilesystemServerExplorerProviderServices serverExplorer) {
|
|
147 | 152 |
|
148 |
}
|
|
153 |
}
|
|
149 | 154 |
} |
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/impl/DefaultFilesystemServerExplorer.java | ||
---|---|---|
43 | 43 |
import org.gvsig.fmap.dal.exception.RemoveException; |
44 | 44 |
import org.gvsig.fmap.dal.exception.ServerExplorerAddException; |
45 | 45 |
import org.gvsig.fmap.dal.exception.ValidateDataParametersException; |
46 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
|
46 | 47 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemFileFilter; |
47 | 48 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorer; |
48 | 49 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemServerExplorerParameters; |
... | ... | |
211 | 212 |
|
212 | 213 |
ndsp.validate(); |
213 | 214 |
provider.create(ndsp, overwrite); |
215 |
|
|
216 |
if( ndsp instanceof NewFeatureStoreParameters ) { |
|
217 |
DataManager dataManager = DALLocator.getDataManager(); |
|
218 |
ResourcesStorage resources = this.getResourcesStorage(ndsp); |
|
219 |
dataManager.writeDALResource(resources, ((NewFeatureStoreParameters) ndsp).getDefaultFeatureType()); |
|
220 |
} |
|
214 | 221 |
return true; |
215 | 222 |
} catch (DataException | ValidateDataParametersException e) { |
216 | 223 |
throw new ServerExplorerAddException(this.getProviderName(), e); |
... | ... | |
253 | 260 |
} |
254 | 261 |
|
255 | 262 |
// ========================================== |
256 |
private FilesystemServerExplorerProvider getProvider(String storeName)
|
|
263 |
private FilesystemServerExplorerProvider getProvider(String providerName)
|
|
257 | 264 |
throws InitializeException, ProviderNotRegisteredException { |
258 | 265 |
Iterator providers = getProviders(FilesystemServerExplorer.MODE_ALL).iterator(); |
259 | 266 |
FilesystemServerExplorerProvider provider; |
260 | 267 |
while (providers.hasNext()) { |
261 | 268 |
provider = (FilesystemServerExplorerProvider) providers.next(); |
262 |
if (provider.getDataStoreProviderName().equals(storeName)) {
|
|
269 |
if (provider.getDataStoreProviderName().equals(providerName)) {
|
|
263 | 270 |
return provider; |
264 | 271 |
} |
265 | 272 |
} |
... | ... | |
509 | 516 |
} |
510 | 517 |
} |
511 | 518 |
|
519 |
private String getResourcePathName(DataStoreParameters parameters) { |
|
520 |
FilesystemServerExplorerProvider provider; |
|
521 |
try { |
|
522 |
provider = this.getProvider(parameters.getProviderName()); |
|
523 |
} catch (Exception ex) { |
|
524 |
return null; |
|
525 |
} |
|
526 |
if (provider == null) { |
|
527 |
return null; |
|
528 |
} |
|
529 |
String pathName = provider.getResourceRootPathName(parameters); |
|
530 |
if (pathName == null) { |
|
531 |
return null; |
|
532 |
} |
|
533 |
pathName = FilenameUtils.removeExtension(pathName); |
|
534 |
return pathName; |
|
535 |
} |
|
536 |
|
|
512 | 537 |
@Override |
538 |
public ResourcesStorage getResourcesStorage(DataStoreParameters parameters) { |
|
539 |
String pathName = this.getResourcePathName(parameters); |
|
540 |
ResourcesStorage theResourcesStorage; |
|
541 |
if( ZipResourcesStorage.existsStorage(pathName) ) { |
|
542 |
String resourceName = FilenameUtils.getBaseName(pathName); |
|
543 |
theResourcesStorage = new ZipResourcesStorage( |
|
544 |
pathName, |
|
545 |
resourceName |
|
546 |
); |
|
547 |
} else { |
|
548 |
theResourcesStorage = new FilesResourcesStorage( |
|
549 |
pathName |
|
550 |
); |
|
551 |
} |
|
552 |
return theResourcesStorage; |
|
553 |
} |
|
554 |
|
|
555 |
@Override |
|
513 | 556 |
public ResourcesStorage getResourcesStorage(DataStore dataStore) { |
514 |
if( this.resourcesStorage==null ) { |
|
515 |
FilesystemServerExplorerProvider provider; |
|
516 |
try { |
|
517 |
provider = this.getProvider(dataStore.getProviderName()); |
|
518 |
} catch (Exception ex) { |
|
519 |
return null; |
|
520 |
} |
|
521 |
if (provider == null) { |
|
522 |
return null; |
|
523 |
} |
|
524 |
String pathName = provider.getResourceRootPathName(dataStore); |
|
525 |
if (pathName == null) { |
|
526 |
return null; |
|
527 |
} |
|
528 |
pathName = FilenameUtils.removeExtension(pathName); |
|
529 |
if( dataStore.getChildren().isEmpty() ) { |
|
530 |
if( ZipResourcesStorage.existsStorage(pathName) ) { |
|
531 |
this.resourcesStorage = new ZipResourcesStorage( |
|
532 |
pathName, |
|
533 |
dataStore.getName() |
|
534 |
); |
|
535 |
} else { |
|
536 |
this.resourcesStorage = new FilesResourcesStorage( |
|
537 |
pathName |
|
538 |
); |
|
539 |
} |
|
540 |
} else { |
|
541 |
this.resourcesStorage = new ZipResourcesStorage( |
|
542 |
pathName, |
|
543 |
dataStore.getName() |
|
544 |
); |
|
545 |
} |
|
557 |
ResourcesStorage theResourcesStorage; |
|
558 |
if( dataStore.getChildren().isEmpty() ) { |
|
559 |
theResourcesStorage = this.getResourcesStorage(dataStore.getParameters()); |
|
560 |
} else { |
|
561 |
String pathName = this.getResourcePathName(dataStore.getParameters()); |
|
562 |
theResourcesStorage = new ZipResourcesStorage( |
|
563 |
pathName, |
|
564 |
dataStore.getName() |
|
565 |
); |
|
546 | 566 |
} |
547 |
return this.resourcesStorage;
|
|
567 |
return theResourcesStorage;
|
|
548 | 568 |
} |
549 | 569 |
|
550 | 570 |
@Override |
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/spi/FilesystemServerExplorerProvider.java | ||
---|---|---|
51 | 51 |
public boolean canCreate(NewDataStoreParameters parameters); |
52 | 52 |
|
53 | 53 |
public String getResourceRootPathName(DataStore dataStore); |
54 |
public String getResourceRootPathName(DataStoreParameters parameters); |
|
54 | 55 |
|
55 | 56 |
public int getMode(); |
56 | 57 |
|
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/DALFile.java | ||
---|---|---|
91 | 91 |
throw new RuntimeException("Can't read DAL resource.",ex); |
92 | 92 |
} |
93 | 93 |
} |
94 |
|
|
95 |
public void setFeatureType(FeatureType featureType) throws DataException { |
|
96 |
this.featureTypes.clear(); |
|
97 |
this.featureTypes.add(featureType.getCopy()); |
|
98 |
this.defaultFeatureTypeId = featureType.getId(); |
|
99 |
} |
|
94 | 100 |
|
95 | 101 |
public void setStore(DefaultFeatureStore store) throws DataException { |
96 | 102 |
this.featureTypes.clear(); |
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.HashMap; |
11 | 11 |
import java.util.List; |
12 | 12 |
import java.util.Map; |
13 |
import org.apache.commons.io.IOUtils; |
|
13 | 14 |
import org.apache.commons.lang3.StringUtils; |
14 | 15 |
import org.gvsig.expressionevaluator.Expression; |
15 | 16 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
... | ... | |
47 | 48 |
import org.gvsig.fmap.dal.feature.FeatureQuery; |
48 | 49 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
49 | 50 |
import org.gvsig.fmap.dal.feature.FeatureType; |
51 |
import org.gvsig.fmap.dal.feature.impl.DALFile; |
|
50 | 52 |
import org.gvsig.fmap.dal.feature.impl.DefaultEditableFeatureType; |
51 | 53 |
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureIndex; |
54 |
import org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore; |
|
52 | 55 |
import org.gvsig.fmap.dal.feature.impl.FeatureStoreFactory; |
53 | 56 |
import org.gvsig.fmap.dal.feature.paging.FeaturePagingHelper; |
54 | 57 |
import org.gvsig.fmap.dal.feature.paging.impl.FeaturePagingHelperImpl; |
... | ... | |
84 | 87 |
import org.gvsig.tools.identitymanagement.SimpleIdentityManager; |
85 | 88 |
import org.gvsig.tools.identitymanagement.UnauthorizedException; |
86 | 89 |
import org.gvsig.tools.persistence.PersistenceManager; |
90 |
import org.gvsig.tools.resourcesstorage.ResourcesStorage; |
|
87 | 91 |
import org.gvsig.tools.service.spi.Services; |
88 | 92 |
import org.slf4j.Logger; |
89 | 93 |
import org.slf4j.LoggerFactory; |
... | ... | |
1026 | 1030 |
DatabaseWorkspaceManager workspace = new DefaultDatabaseWorkspaceManager(connection); |
1027 | 1031 |
return workspace; |
1028 | 1032 |
} |
1033 |
|
|
1034 |
@Override |
|
1035 |
public void writeDALResource(ResourcesStorage resources, DataStore store) { |
|
1036 |
ResourcesStorage.Resource resource = null; |
|
1037 |
try { |
|
1038 |
if( resources == null || resources.isReadOnly() ) { |
|
1039 |
return; |
|
1040 |
} |
|
1041 |
resource = resources.getResource("dal"); |
|
1042 |
if( resource == null || resource.isReadOnly() ) { |
|
1043 |
return; |
|
1044 |
} |
|
1045 |
DALFile dalFile = DALFile.getDALFile(); |
|
1046 |
dalFile.setStore((DefaultFeatureStore) store); |
|
1047 |
if( !dalFile.isEmpty() ) { |
|
1048 |
dalFile.write(resource); |
|
1049 |
} |
|
1050 |
} catch (Throwable ex) { |
|
1051 |
LOGGER.warn("Can't save DAL resource", ex); |
|
1052 |
} finally { |
|
1053 |
IOUtils.closeQuietly(resource); |
|
1054 |
} |
|
1055 |
|
|
1056 |
|
|
1057 |
} |
|
1058 |
|
|
1059 |
@Override |
|
1060 |
public void writeDALResource(ResourcesStorage resources, FeatureType featureType) { |
|
1061 |
ResourcesStorage.Resource resource = null; |
|
1062 |
try { |
|
1063 |
if( resources == null || resources.isReadOnly() ) { |
|
1064 |
return; |
|
1065 |
} |
|
1066 |
resource = resources.getResource("dal"); |
|
1067 |
if( resource == null || resource.isReadOnly() ) { |
|
1068 |
return; |
|
1069 |
} |
|
1070 |
DALFile dalFile = DALFile.getDALFile(); |
|
1071 |
dalFile.setFeatureType(featureType); |
|
1072 |
if( !dalFile.isEmpty() ) { |
|
1073 |
dalFile.write(resource); |
|
1074 |
} |
|
1075 |
} catch (Throwable ex) { |
|
1076 |
LOGGER.warn("Can't save DAL resource", ex); |
|
1077 |
} finally { |
|
1078 |
IOUtils.closeQuietly(resource); |
|
1079 |
} |
|
1080 |
} |
|
1029 | 1081 |
} |
Also available in: Unified diff