Revision 43423 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/utils/DbaseFileWriter.java

View differences:

DbaseFileWriter.java
286 286
        int dbfFieldIndex = this.header.getFieldIndex(attr.getName());
287 287
        final int fieldLen = header.getFieldLength(dbfFieldIndex);
288 288
        String fieldString = "";
289
        if (DataTypes.BOOLEAN == type) {
289
        
290
        if( DataTypes.BOOLEAN == type ) {
290 291
            boolean b = feature.getBoolean(attr.getIndex());
291
            if (b) {
292
            	safeEncode("T", 1, true); 
292
            if( b ) {
293
                safeEncode("T", 1, true);
293 294
            } else {
294
            	safeEncode("F", 1, true);
295
                safeEncode("F", 1, true);
295 296
            }
296
        } else
297
            if (DataTypes.BYTE == type) {
298
                fieldString = String.valueOf(feature.getByte(attr.getIndex()));
299
                safeEncode(fieldString, 8, false);
300
            } else
301
                if (DataTypes.DATE == type) {
302
                    Date date = feature.getDate(attr.getIndex());
303
                    fieldString = formatter.getFieldString(date);
304
                    safeEncode(fieldString, 8, false);
305
                } else
306
                    if (DataTypes.DOUBLE == type) {
307
                        double d = feature.getDouble(attr.getIndex());
308
                        fieldString =
309
                            formatter.getFieldString(fieldLen,
310
                                header.getFieldDecimalCount(dbfFieldIndex), d);
311
                        safeEncode(fieldString, fieldLen, false);
312
                    } else
313
                        if (DataTypes.FLOAT == type) {
314
                            float f = feature.getFloat(attr.getIndex());
315
                            fieldString =
316
                                formatter.getFieldString(fieldLen,
317
                                    header.getFieldDecimalCount(dbfFieldIndex),
318
                                    f);
319
                            safeEncode(fieldString, fieldLen, false);
320
                        } else
321
                            if (DataTypes.INT == type) {
322
                                int integer = feature.getInt(attr.getIndex());
323
                                fieldString =
324
                                    formatter.getFieldString(fieldLen, header
325
                                        .getFieldDecimalCount(dbfFieldIndex),
326
                                        integer);
327
                                safeEncode(fieldString, fieldLen, false);
328
                            } else
329
                                if (DataTypes.LONG == type) {
330
                                    long l = feature.getLong(attr.getIndex());
331
                                    fieldString =
332
                                        formatter
333
                                            .getFieldString(
334
                                                fieldLen,
335
                                                header
336
                                                    .getFieldDecimalCount(dbfFieldIndex),
337
                                                l);
338
                                    safeEncode(fieldString, fieldLen, false);
339
                                } else
340
                                    if (DataTypes.STRING == type) {
341
                                        String s =
342
                                            feature.getString(attr.getIndex());
343
//                                        System.out.println(fieldLen);
344
                                        safeEncode(s, fieldLen, true);
345
                                    }
297
        
298
        } else if( DataTypes.BYTE == type ) {
299
            fieldString = String.valueOf(feature.getByte(attr.getIndex()));
300
            safeEncode(fieldString, 8, false);
301
        
302
        } else if( DataTypes.DATE == type ) {
303
            Date date = feature.getDate(attr.getIndex());
304
            fieldString = formatter.getFieldString(date);
305
            safeEncode(fieldString, 8, false);
306
        
307
        } else if( DataTypes.DOUBLE == type ) {
308
            double d = feature.getDouble(attr.getIndex());
309
            fieldString  = formatter.getFieldString(
310
                fieldLen, header.getFieldDecimalCount(dbfFieldIndex), d
311
            );
312
            safeEncode(fieldString, fieldLen, false);
313
        
314
        } else if( DataTypes.FLOAT == type ) {
315
            float f = feature.getFloat(attr.getIndex());
316
            fieldString = formatter.getFieldString(
317
                fieldLen, header.getFieldDecimalCount(dbfFieldIndex), f
318
            );
319
            safeEncode(fieldString, fieldLen, false);
320
        
321
        } else if( DataTypes.INT == type ) {
322
            int integer = feature.getInt(attr.getIndex());
323
            fieldString = formatter.getFieldString(
324
                fieldLen, header.getFieldDecimalCount(dbfFieldIndex), integer
325
            );
326
            safeEncode(fieldString, fieldLen, false);
327
        
328
        } else if( DataTypes.LONG == type ) {
329
            long l = feature.getLong(attr.getIndex());
330
            fieldString = formatter.getFieldString(
331
                fieldLen, header.getFieldDecimalCount(dbfFieldIndex),l
332
            );
333
            safeEncode(fieldString, fieldLen, false);
334
        
335
        } else if( DataTypes.STRING == type ) {
336
            String s = feature.getString(attr.getIndex());
337
            safeEncode(s, fieldLen, true);
346 338

  
339
        }
340

  
347 341
    }
348 342

  
349 343
    /**

Also available in: Unified diff