Revision 47643 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/gml/GMLFilesystemServerProvider.java

View differences:

GMLFilesystemServerProvider.java
24 24
package org.gvsig.fmap.dal.store.gml;
25 25

  
26 26
import java.io.File;
27
import java.io.IOException;
28 27
import org.gvsig.fmap.dal.DALLocator;
29 28
import org.gvsig.fmap.dal.DataManager;
30 29

  
31
import org.gvsig.fmap.dal.DataServerExplorer;
32 30
import org.gvsig.fmap.dal.DataStoreParameters;
33
import org.gvsig.fmap.dal.NewDataStoreParameters;
34 31
import org.gvsig.fmap.dal.exception.DataException;
35
import org.gvsig.fmap.dal.exception.FileNotFoundException;
36
import org.gvsig.fmap.dal.exception.RemoveException;
37
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
38
import org.gvsig.fmap.dal.feature.EditableFeatureType;
39
import org.gvsig.fmap.dal.feature.FeatureType;
40
import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
41
import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
42
import org.gvsig.fmap.dal.serverexplorer.filesystem.impl.AbstractFilesystemServerExplorerProvider;
43
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider;
44
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices;
45
import org.gvsig.tools.dataTypes.DataTypes;
32
import org.gvsig.fmap.dal.store.simplereader.SimpleReaderFilesystemServerProvider;
46 33

  
47
public class GMLFilesystemServerProvider extends AbstractFilesystemServerExplorerProvider
48
        implements FilesystemServerExplorerProvider, ResourceConsumer {
34
public class GMLFilesystemServerProvider 
35
        extends SimpleReaderFilesystemServerProvider {
49 36

  
50
    protected FilesystemServerExplorerProviderServices serverExplorer;
51

  
52 37
    @Override
53 38
    public String getDataStoreProviderName() {
54 39
        return GMLStoreProvider.NAME;
55 40
    }
56 41

  
57 42
    @Override
58
    public int getMode() {
59
        return DataServerExplorer.MODE_FEATURE | DataServerExplorer.MODE_GEOMETRY;
60
    }
61

  
62
    @Override
63
    public boolean accept(File file) {
64
        String pathname = file.getName().toLowerCase();
65
        if ( pathname.endsWith(".gml")){
66
            return true;
67
        }
68
        return false;
69
    }
70

  
71
    @Override
72 43
    public String getDescription() {
73 44
        return GMLStoreProvider.DESCRIPTION;
74 45
    }
75 46

  
76 47
    @Override
48
    protected String getFileExtension() {
49
        return ".gml";
50
    }
51
    
52
    @Override
77 53
    public DataStoreParameters getParameters(File file) throws DataException {
78 54
        DataManager manager = DALLocator.getDataManager();
79 55
        GMLStoreParameters params = (GMLStoreParameters) manager
......
82 58
        return params;
83 59
    }
84 60

  
85
    @Override
86
    public boolean canCreate() {
87
        return false;
88
    }
89

  
90
    @Override
91
    public void initialize(FilesystemServerExplorerProviderServices serverExplorer) {
92
        this.serverExplorer = serverExplorer;
93

  
94
    }
95

  
96
    @Override
97
    public void remove(DataStoreParameters parameters) throws RemoveException {
98
        GMLStoreParameters params = (GMLStoreParameters) parameters;
99
        File file = params.getFile();
100
        if (!file.exists()) {
101
            throw new RemoveException(this.getDataStoreProviderName(),
102
                    new FileNotFoundException(params.getFile()));
103
        }
104
        if (!file.delete()) {
105
            throw new RemoveException(this.getDataStoreProviderName(),
106
                    new IOException()); // FIXME Exception
107
        }
108
    }
109

  
110
    @Override
111
    public boolean closeResourceRequested(ResourceProvider resource) {
112
        // while it is using a resource anyone can't close it
113
        return !(this.equals(resource));
114
    }
115

  
116
    /*
117
	 * (non-Javadoc)
118
	 *
119
	 * @see
120
	 * org.gvsig.fmap.dal.resource.spi.ResourceConsumer#resourceChanged(org.
121
	 * gvsig.fmap.dal.resource.spi.ResourceProvider)
122
     */
123
    @Override
124
    public void resourceChanged(ResourceProvider resource) {
125
        // Do nothing
126
    }
127

  
128
    protected EditableFeatureType fixFeatureType(FeatureType featureType) {
129
        EditableFeatureType newFeatureType;
130

  
131
        if (featureType instanceof EditableFeatureType) {
132
            newFeatureType = (EditableFeatureType) featureType.getCopy();
133
        } else {
134
            newFeatureType = featureType.getEditable();
135
        }
136

  
137
        for (int i = 0; i < newFeatureType.size(); i++) {
138
            EditableFeatureAttributeDescriptor attr = (EditableFeatureAttributeDescriptor) newFeatureType.getAttributeDescriptor(i);
139
            String s;
140
            switch (attr.getType()) {
141
                case DataTypes.INT:
142
                    s = String.valueOf(Integer.MAX_VALUE);
143
                    attr.setSize(18);
144
                    attr.setPrecision(0);
145
                    attr.setScale(0);
146
                    break;
147
                case DataTypes.LONG:
148
                    s = String.valueOf(Long.MAX_VALUE);
149
                    attr.setSize(18);
150
                    attr.setPrecision(0);
151
                    attr.setScale(0);
152
                    break;
153
                case DataTypes.FLOAT:
154
                    attr.setSize(18);
155
                    attr.setPrecision(6);
156
                    attr.setScale(0);
157
                    break;
158
                case DataTypes.DOUBLE:
159
                    attr.setSize(18);
160
                    attr.setPrecision(6);
161
                    attr.setScale(0);
162
                    break;
163
            }
164
        }
165
        return newFeatureType;
166
    }
167 61
}

Also available in: Unified diff