Revision 44941 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.file/org.gvsig.fmap.dal.file.csv/src/main/java/org/gvsig/fmap/dal/store/csv/CSVStoreProvider.java
CSVStoreProvider.java | ||
---|---|---|
456 | 456 |
private void init(CSVStoreParameters parameters, DataStoreProviderServices storeServices) { |
457 | 457 |
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. |
458 | 458 |
} |
459 |
private class FieldTypeParser { |
|
459 |
|
|
460 |
public static class FieldTypeParser { |
|
460 | 461 |
|
461 | 462 |
public String name = null; |
462 | 463 |
public int type = DataTypes.STRING; |
... | ... | |
471 | 472 |
|
472 | 473 |
private String typename = "string"; |
473 | 474 |
|
474 |
FieldTypeParser() { |
|
475 |
private final String fullFileName; |
|
476 |
private final String providerName; |
|
477 |
|
|
478 |
FieldTypeParser(String providerName, String fullFileName) { |
|
479 |
this.providerName = providerName; |
|
480 |
this.fullFileName = fullFileName; |
|
475 | 481 |
} |
476 | 482 |
|
483 |
public String getProviderName() { |
|
484 |
return this.providerName; |
|
485 |
} |
|
486 |
|
|
487 |
public String getFullFileName() { |
|
488 |
return this.fullFileName; |
|
489 |
} |
|
490 |
|
|
477 | 491 |
public void clear() { |
478 | 492 |
this.name = null; |
479 | 493 |
this.type = DataTypes.STRING; |
... | ... | |
606 | 620 |
// Calculamos cuales pueden ser los tipos de datos |
607 | 621 |
// |
608 | 622 |
for (int i = 0; i < fieldTypes.length; i++) { |
609 |
fieldTypes[i] = new FieldTypeParser(); |
|
623 |
fieldTypes[i] = new FieldTypeParser(getProviderName(), getFullFileName());
|
|
610 | 624 |
} |
611 | 625 |
|
612 | 626 |
// Asuminos los tipos pasados por parametro, que se supone |
... | ... | |
633 | 647 |
String sep = CSVStoreParameters.getDelimiter(param_types_def); |
634 | 648 |
if (StringUtils.isNotBlank(sep)) { |
635 | 649 |
String[] param_types = param_types_def.split(sep); |
636 |
FieldTypeParser parser = new FieldTypeParser(); |
|
650 |
FieldTypeParser parser = new FieldTypeParser(getProviderName(), getFullFileName());
|
|
637 | 651 |
for (String param_type : param_types) { |
638 | 652 |
parser.clear(); |
639 | 653 |
parser.parse(param_type); |
... | ... | |
651 | 665 |
// |
652 | 666 |
for (FieldTypeParser fieldType : fieldTypes) { |
653 | 667 |
EditableFeatureAttributeDescriptor fad = fType.add(fieldType.name, fieldType.type); |
654 |
fad.setRequiredBytes(Math.max(fieldType.detectedValue.getDisplaySize(), fieldType.size)); |
|
655 |
fad.setSize(Math.max(fieldType.detectedValue.getDisplaySize(), fieldType.size)); |
|
656 |
if( fad.getPrecision()<fieldType.detectedValue.getPrecision() ) { |
|
657 |
fad.setPrecision(fieldType.detectedValue.getPrecision()); |
|
668 |
if( fieldType.detectedValue!=null ) { |
|
669 |
fad.setRequiredBytes(Math.max(fieldType.detectedValue.getDisplaySize(), fieldType.size)); |
|
670 |
fad.setSize(Math.max(fieldType.detectedValue.getDisplaySize(), fieldType.size)); |
|
671 |
if( fad.getPrecision()<fieldType.detectedValue.getPrecision() ) { |
|
672 |
fad.setPrecision(fieldType.detectedValue.getPrecision()); |
|
673 |
} |
|
674 |
if( fad.getScale()<fieldType.detectedValue.getScale()) { |
|
675 |
fad.setScale(fieldType.detectedValue.getScale()); |
|
676 |
} |
|
677 |
} else { |
|
678 |
fad.setRequiredBytes(fieldType.size); |
|
658 | 679 |
} |
659 |
if( fad.getScale()<fieldType.detectedValue.getScale()) { |
|
660 |
fad.setScale(fieldType.detectedValue.getScale()); |
|
661 |
} |
|
662 | 680 |
if (fieldType.type == DataTypes.GEOMETRY ) { |
663 | 681 |
fad.setGeometryType(fieldType.geomType, fieldType.geomSubtype); |
664 | 682 |
if( fType.getDefaultGeometryAttributeName() == null ) { |
Also available in: Unified diff