Revision 9524 branches/piloto3d/libraries/libFMap/src/com/iver/cit/gvsig/fmap/drivers/dbf/DBFDriver.java
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