Revision 9524 branches/piloto3d/libraries/libFMap/src/com/iver/cit/gvsig/fmap/drivers/dbf/DBFDriver.java

View differences:

DBFDriver.java
24 24
import com.hardcode.gdbms.engine.data.file.FileDataWare;
25 25
import com.hardcode.gdbms.engine.values.Value;
26 26
import com.hardcode.gdbms.engine.values.ValueFactory;
27
import com.iver.cit.gvsig.fmap.drivers.FieldDescription;
27 28
import com.iver.cit.gvsig.fmap.drivers.ITableDefinition;
29
import com.iver.cit.gvsig.fmap.drivers.TableDefinition;
28 30
import com.iver.cit.gvsig.fmap.drivers.shp.DbaseFileHeaderNIO;
29 31
import com.iver.cit.gvsig.fmap.drivers.shp.DbaseFileWriterNIO;
30 32
import com.iver.cit.gvsig.fmap.edition.EditionException;
......
33 35
import com.iver.cit.gvsig.fmap.edition.IWriter;
34 36
import com.iver.cit.gvsig.fmap.edition.fieldmanagers.AbstractFieldManager;
35 37
import com.iver.cit.gvsig.fmap.edition.writers.dbf.DbfWriter;
38
import com.iver.utiles.NumberUtilities;
36 39

  
37 40

  
38 41
/**
......
50 53
	private File file = null;
51 54
	private static String tempDirectoryPath = System.getProperty("java.io.tmpdir");
52 55
	private File fTemp;
56
    private ITableDefinition tableDef;
53 57

  
54

  
55 58
    /**
56 59
     * @see com.hardcode.driverManager.Driver#getName()
57 60
     */
......
309 312
        return channel;
310 313
    }
311 314

  
315
    /* (non-Javadoc)
316
     * @see com.hardcode.gdbms.engine.data.driver.FileDriver#createSource(java.lang.String, java.lang.String[], int[])
317
     */
312 318
    public void createSource(String arg0, String[] arg1, int[] arg2) throws IOException {
313 319
        DbaseFileHeaderNIO myHeader;
314 320

  
......
388 394
	}
389 395

  
390 396
	public ITableDefinition getTableDefinition() {
391
		return dbfWriter.getTableDefinition();
397
		tableDef = new TableDefinition();
398
		int numFields; 
399
		try {
400
			numFields = getFieldCount();
401
			FieldDescription[] fieldsDescrip = new FieldDescription[numFields];
402
			for (int i = 0; i < numFields; i++) {
403
				fieldsDescrip[i] = new FieldDescription();
404
				int type = getFieldType(i);
405
				fieldsDescrip[i].setFieldType(type);
406
				fieldsDescrip[i].setFieldName(getFieldName(i));
407
				fieldsDescrip[i].setFieldLength(getFieldWidth(i));
408
				if (NumberUtilities.isNumeric(type))
409
				{
410
					if (!NumberUtilities.isNumericInteger(type))
411
						// TODO: If there is a lost in precision, this should be changed.
412
						fieldsDescrip[i].setFieldDecimalCount(6);
413
				}
414
				else
415
					fieldsDescrip[i].setFieldDecimalCount(0);
416
				// TODO: ?DEFAULTVALUE?
417
				// fieldsDescrip[i].setDefaultValue(get)
418
			}
419
	
420
			tableDef.setFieldsDesc(fieldsDescrip);
421
			return tableDef;
422
		} catch (DriverException e) {
423
			// TODO Auto-generated catch block
424
			e.printStackTrace();
425
		}
426
		return null;
427
//		return dbfWriter.getTableDefinition();
392 428
	}
393 429

  
394 430
	public boolean canAlterTable() {
......
405 441

  
406 442
	}
407 443

  
444
	public boolean isWriteAll() {
445
		// TODO: DEVOLVER FALSE SI NO HA HABIDO CAMBIOS EN LOS CAMPOS.
446
		return true;
447
	}
448

  
408 449
}

Also available in: Unified diff