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/csv/CSVFilesystemServerProvider.java

View differences:

CSVFilesystemServerProvider.java
29 29
import org.gvsig.fmap.dal.DALLocator;
30 30
import org.gvsig.fmap.dal.DataManager;
31 31

  
32
import org.gvsig.fmap.dal.DataServerExplorer;
33 32
import org.gvsig.fmap.dal.DataStoreParameters;
34 33
import org.gvsig.fmap.dal.NewDataStoreParameters;
35 34
import org.gvsig.fmap.dal.exception.CreateException;
36 35
import org.gvsig.fmap.dal.exception.DataException;
37
import org.gvsig.fmap.dal.exception.FileNotFoundException;
38 36
import org.gvsig.fmap.dal.exception.InitializeException;
39
import org.gvsig.fmap.dal.exception.RemoveException;
40
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor;
41
import org.gvsig.fmap.dal.feature.EditableFeatureType;
42
import org.gvsig.fmap.dal.feature.FeatureType;
43 37
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters;
44 38
import org.gvsig.fmap.dal.resource.ResourceAction;
45 39
import org.gvsig.fmap.dal.resource.exception.ResourceExecuteException;
46 40
import org.gvsig.fmap.dal.resource.file.FileResource;
47
import org.gvsig.fmap.dal.resource.spi.ResourceConsumer;
48
import org.gvsig.fmap.dal.resource.spi.ResourceProvider;
49 41
import org.gvsig.fmap.dal.serverexplorer.filesystem.AbsolutePathRequiredException;
50
import org.gvsig.fmap.dal.serverexplorer.filesystem.impl.AbstractFilesystemServerExplorerProvider;
51
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider;
52 42
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices;
53
import org.gvsig.tools.dataTypes.DataTypes;
43
import org.gvsig.fmap.dal.store.simplereader.SimpleReaderFilesystemServerProvider;
54 44
import org.supercsv.comment.CommentStartsWith;
55 45
import org.supercsv.prefs.CsvPreference;
56 46
import org.supercsv.quote.QuoteMode;
57 47

  
58
public class CSVFilesystemServerProvider extends AbstractFilesystemServerExplorerProvider
59
        implements FilesystemServerExplorerProvider, ResourceConsumer {
48
public class CSVFilesystemServerProvider extends 
49
        SimpleReaderFilesystemServerProvider {
60 50

  
61
    protected FilesystemServerExplorerProviderServices serverExplorer;
62

  
63 51
    @Override
64 52
    public String getDataStoreProviderName() {
65 53
        return CSVStoreProvider.NAME;
66 54
    }
67 55

  
68 56
    @Override
69
    public int getMode() {
70
        return DataServerExplorer.MODE_FEATURE | DataServerExplorer.MODE_GEOMETRY;
57
    public String getDescription() {
58
        return CSVStoreProvider.DESCRIPTION;
71 59
    }
72 60

  
73 61
    @Override
74
    public boolean accept(File file) {
75
        String pathname = file.getName().toLowerCase();
76
        if ( pathname.endsWith(".csv")){
77
            return true;
78
        }
79
        return false;
62
    protected String getFileExtension() {
63
        return ".csv";
80 64
    }
81 65

  
82 66
    @Override
83
    public String getDescription() {
84
        return CSVStoreProvider.DESCRIPTION;
85
    }
86

  
87
    @Override
88 67
    public DataStoreParameters getParameters(File file) throws DataException {
89 68
        DataManager manager = DALLocator.getDataManager();
90 69
        CSVStoreParameters params = (CSVStoreParameters) manager
......
236 215
                .getServerExplorerProviderServices().createNewFeatureType());
237 216
        return params;
238 217
    }
239

  
240
    @Override
241
    public void initialize(FilesystemServerExplorerProviderServices serverExplorer) {
242
        this.serverExplorer = serverExplorer;
243

  
244
    }
245

  
246
    @Override
247
    public void remove(DataStoreParameters parameters) throws RemoveException {
248
        CSVStoreParameters params = (CSVStoreParameters) parameters;
249
        File file = params.getFile();
250
        if (!file.exists()) {
251
            throw new RemoveException(this.getDataStoreProviderName(),
252
                    new FileNotFoundException(params.getFile()));
253
        }
254
        if (!file.delete()) {
255
            throw new RemoveException(this.getDataStoreProviderName(),
256
                    new IOException()); // FIXME Exception
257
        }
258
    }
259

  
260
    @Override
261
    public boolean closeResourceRequested(ResourceProvider resource) {
262
        // while it is using a resource anyone can't close it
263
        return !(this.equals(resource));
264
    }
265

  
266
    /*
267
	 * (non-Javadoc)
268
	 *
269
	 * @see
270
	 * org.gvsig.fmap.dal.resource.spi.ResourceConsumer#resourceChanged(org.
271
	 * gvsig.fmap.dal.resource.spi.ResourceProvider)
272
     */
273
    @Override
274
    public void resourceChanged(ResourceProvider resource) {
275
        // Do nothing
276
    }
277

  
278
    protected EditableFeatureType fixFeatureType(FeatureType featureType) {
279
        EditableFeatureType newFeatureType;
280

  
281
        if (featureType instanceof EditableFeatureType) {
282
            newFeatureType = (EditableFeatureType) featureType.getCopy();
283
        } else {
284
            newFeatureType = featureType.getEditable();
285
        }
286

  
287
        for (int i = 0; i < newFeatureType.size(); i++) {
288
            EditableFeatureAttributeDescriptor attr = (EditableFeatureAttributeDescriptor) newFeatureType.getAttributeDescriptor(i);
289
            String s;
290
            switch (attr.getType()) {
291
                case DataTypes.INT:
292
                    s = String.valueOf(Integer.MAX_VALUE);
293
                    attr.setSize(18);
294
                    attr.setPrecision(0);
295
                    attr.setScale(0);
296
                    break;
297
                case DataTypes.LONG:
298
                    s = String.valueOf(Long.MAX_VALUE);
299
                    attr.setSize(18);
300
                    attr.setPrecision(0);
301
                    attr.setScale(0);
302
                    break;
303
                case DataTypes.FLOAT:
304
                    attr.setSize(18);
305
                    attr.setPrecision(6);
306
                    attr.setScale(0);
307
                    break;
308
                case DataTypes.DOUBLE:
309
                    attr.setSize(18);
310
                    attr.setPrecision(6);
311
                    attr.setScale(0);
312
                    break;
313
            }
314
        }
315
        return newFeatureType;
316
    }
317 218
}

Also available in: Unified diff