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