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

View differences:

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