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

View differences:

DefaultFilesystemServerExplorer.java
53 53
import org.gvsig.fmap.dal.spi.AbstractDataServerExplorer;
54 54
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
55 55
import org.gvsig.fmap.dal.spi.DataServerExplorerProviderServices;
56
import org.gvsig.fmap.dal.spi.FileMultiResource;
56
import org.gvsig.fmap.dal.spi.ZipResourcesStorage;
57 57
import org.gvsig.tools.exception.BaseException;
58 58
import org.gvsig.tools.extensionpoint.ExtensionPoint.Extension;
59
import org.gvsig.tools.util.ResourcesStorage;
60
import org.gvsig.tools.util.SimpleFileResource;
59
import org.gvsig.tools.resourcesstorage.ResourcesStorage;
60
import org.gvsig.tools.resourcesstorage.FilesResourcesStorage;
61 61

  
62 62
@SuppressWarnings("UseSpecificCatch")
63 63
public class DefaultFilesystemServerExplorer extends AbstractDataServerExplorer
......
494 494
    @Deprecated
495 495
    @Override
496 496
    public File getResourcePath(DataStore dataStore, String resourceName) throws DataException {
497
        SimpleFileResource resource = (SimpleFileResource) this.getResource(dataStore, resourceName);
498
        if( resource==null ) {
497
        try {
498
            ResourcesStorage theResourceStorage = this.getResourcesStorage(dataStore);
499
            if( theResourceStorage==null ) {
500
                return null;
501
            }
502
            FilesResourcesStorage.FileResource res = (FilesResourcesStorage.FileResource) theResourceStorage.getResource(resourceName);
503
            if( res==null ) {
504
                return null;
505
            }
506
            return res.getFile();
507
        } catch(Exception ex) {
499 508
            return null;
500 509
        }
501
        return resource.getFile();
502 510
    }
503 511

  
504 512
    @Override
505
    public org.gvsig.tools.util.ResourcesStorage.Resource getResource(DataStore dataStore, String resourceName) throws DataException {
506
        FilesystemServerExplorerProvider provider = this.getProvider(dataStore.getProviderName());
507
        if (provider == null) {
508
            return null;
509
        }
510
        String rootPathName = provider.getResourceRootPathName(dataStore);
511
        if (rootPathName == null) {
512
            return null;
513
        }
514
        if( !dataStore.getChildren().isEmpty() ) {
515
            FileMultiResource res = new FileMultiResource(
516
                    new File(rootPathName),
517
                    dataStore.getName(), 
518
                    resourceName
519
            );
520
            return res;
521
        }
522
        File f = new File(FilenameUtils.getFullPathNoEndSeparator(rootPathName),resourceName);
523
        if( f.exists() ) {
524
            return new SimpleFileResource(f);
525
        }
526
        return new SimpleFileResource(new File(rootPathName + "." + resourceName));
527
    }
528

  
529
    @Override
530
    public List<ResourcesStorage.Resource> getResources(DataStore dataStore, String resourceName) throws DataException {
531
        FilesystemServerExplorerProvider provider = this.getProvider(dataStore.getProviderName());
532
        if (provider == null) {
533
            return null;
534
        }
535
        String rootPathName = provider.getResourceRootPathName(dataStore);
536
        if (rootPathName == null) {
537
            return null;
538
        }
539
        List<ResourcesStorage.Resource>ress = new ArrayList<>();
540
        int n = 0;
541
        while(true) {
542
            String multiresourceName;
543
            if( n==0 ) {
544
                multiresourceName = resourceName;
545
            } else {
546
                multiresourceName = String.valueOf(n)+"."+resourceName;
513
    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;
547 520
            }
548
            File f = new File(rootPathName + "." + multiresourceName);
549
            if( !f.exists() ) {
550
                break;
521
            if (provider == null) {
522
                return null;
551 523
            }
552
            ress.add(new SimpleFileResource(f));
553
            n++;
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
            }
554 546
        }
555
        if( ress.isEmpty() ) {
556
            return null;
557
        }
558
        return ress;
547
        return this.resourcesStorage;
559 548
    }
560 549
    
561
    
562 550
    @Override
563 551
    public DataStoreParameters get(String name) throws DataException {
564 552
        File theFile = new File(this.current,name);

Also available in: Unified diff