Revision 41637 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.dbf/src/main/java/org/gvsig/fmap/dal/store/dbf/DBFFilesystemServerProvider.java
DBFFilesystemServerProvider.java | ||
---|---|---|
36 | 36 |
import org.gvsig.fmap.dal.exception.FileNotFoundException; |
37 | 37 |
import org.gvsig.fmap.dal.exception.InitializeException; |
38 | 38 |
import org.gvsig.fmap.dal.exception.RemoveException; |
39 |
import org.gvsig.fmap.dal.feature.EditableFeatureAttributeDescriptor; |
|
40 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
|
41 |
import org.gvsig.fmap.dal.feature.FeatureType; |
|
39 | 42 |
import org.gvsig.fmap.dal.feature.NewFeatureStoreParameters; |
40 | 43 |
import org.gvsig.fmap.dal.resource.ResourceAction; |
41 | 44 |
import org.gvsig.fmap.dal.resource.exception.ResourceExecuteException; |
... | ... | |
46 | 49 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.impl.AbstractFilesystemServerExplorerProvider; |
47 | 50 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProvider; |
48 | 51 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.spi.FilesystemServerExplorerProviderServices; |
52 |
import org.gvsig.tools.dataTypes.DataTypes; |
|
49 | 53 |
|
50 | 54 |
public class DBFFilesystemServerProvider extends AbstractFilesystemServerExplorerProvider |
51 | 55 |
implements FilesystemServerExplorerProvider, ResourceConsumer { |
... | ... | |
139 | 143 |
DBFFeatureWriter writer = |
140 | 144 |
new DBFFeatureWriter(getDataStoreProviderName()); |
141 | 145 |
|
142 |
writer.begin(params, params.getDefaultFeatureType(), 0); |
|
146 |
writer.begin( |
|
147 |
params, |
|
148 |
fixFeatureType(params.getDefaultFeatureType()), |
|
149 |
0 |
|
150 |
); |
|
143 | 151 |
writer.end(); |
144 | 152 |
writer.dispose(); |
145 | 153 |
resource.notifyChanges(); |
... | ... | |
203 | 211 |
// Do nothing |
204 | 212 |
} |
205 | 213 |
|
214 |
protected EditableFeatureType fixFeatureType(FeatureType featureType) { |
|
215 |
EditableFeatureType newFeatureType; |
|
216 |
|
|
217 |
if( featureType instanceof EditableFeatureType ) { |
|
218 |
newFeatureType = (EditableFeatureType) featureType.getCopy(); |
|
219 |
} else { |
|
220 |
newFeatureType = featureType.getEditable(); |
|
221 |
} |
|
222 |
|
|
223 |
for( int i=0; i<newFeatureType.size(); i++ ) { |
|
224 |
EditableFeatureAttributeDescriptor attr = (EditableFeatureAttributeDescriptor) newFeatureType.getAttributeDescriptor(i); |
|
225 |
String s; |
|
226 |
switch(attr.getType()) { |
|
227 |
case DataTypes.INT: |
|
228 |
s = String.valueOf(Integer.MAX_VALUE); |
|
229 |
attr.setSize(18); |
|
230 |
attr.setPrecision(0); |
|
231 |
break; |
|
232 |
case DataTypes.LONG: |
|
233 |
s = String.valueOf(Long.MAX_VALUE); |
|
234 |
attr.setSize(18); |
|
235 |
attr.setPrecision(0); |
|
236 |
break; |
|
237 |
case DataTypes.FLOAT: |
|
238 |
attr.setSize(18); |
|
239 |
attr.setPrecision(6); |
|
240 |
break; |
|
241 |
case DataTypes.DOUBLE: |
|
242 |
attr.setSize(18); |
|
243 |
attr.setPrecision(6); |
|
244 |
break; |
|
245 |
} |
|
246 |
} |
|
247 |
return newFeatureType; |
|
248 |
} |
|
249 |
|
|
206 | 250 |
} |
Also available in: Unified diff