Revision 46896
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/DbaseFileHeader.java | ||
---|---|---|
654 | 654 |
if (dbfattr.getScale()==-1 || dbfattr.getScale() > 0) { |
655 | 655 |
if (dbfattr.getSize() > DataType.DOUBLE_MAX_PRECISION+3) { |
656 | 656 |
attr = featureType.add(dbfattr.getName(), |
657 |
DataTypes.DECIMAL, dbfattr.getSize()); |
|
657 |
DataTypes.DECIMAL); |
|
658 |
attr.setDisplaySize(dbfattr.getSize()); |
|
658 | 659 |
attr.setScale(DataType.SCALE_NONE); |
659 | 660 |
attr.setPrecision(dbfattr.getPrecision()); |
660 | 661 |
attr.setDefaultValue(null); |
... | ... | |
662 | 663 |
|
663 | 664 |
} else if (dbfattr.getSize() > DataType.FLOAT_MAX_PRECISION+3) { |
664 | 665 |
attr = featureType.add(dbfattr.getName(), |
665 |
DataTypes.DOUBLE, dbfattr.getSize()); |
|
666 |
DataTypes.DOUBLE); |
|
667 |
attr.setDisplaySize(dbfattr.getSize()); |
|
666 | 668 |
attr.setScale(dbfattr.getScale()); |
667 | 669 |
attr.setPrecision(dbfattr.getPrecision()); |
668 | 670 |
attr.setDefaultValue(null); |
669 | 671 |
attr.setAllowNull(true); |
670 | 672 |
} else { |
671 | 673 |
attr = featureType.add(dbfattr.getName(), |
672 |
DataTypes.FLOAT, dbfattr.getSize()); |
|
674 |
DataTypes.FLOAT); |
|
675 |
attr.setDisplaySize(dbfattr.getSize()); |
|
673 | 676 |
attr.setScale(dbfattr.getScale()); |
674 | 677 |
attr.setPrecision(dbfattr.getPrecision()); |
675 | 678 |
attr.setDefaultValue(null); |
... | ... | |
677 | 680 |
} |
678 | 681 |
} else { |
679 | 682 |
if (dbfattr.getPrecision() > DataType.LONG_MAX_PRECISION) { |
680 |
attr = featureType.add(dbfattr.getName(), |
|
681 |
DataTypes.DECIMAL, dbfattr.getSize());
|
|
683 |
attr = featureType.add(dbfattr.getName(), DataTypes.DECIMAL);
|
|
684 |
attr.setDisplaySize(dbfattr.getSize());
|
|
682 | 685 |
attr.setPrecision(dbfattr.getPrecision()); |
683 | 686 |
attr.setScale(DataType.SCALE_NONE); |
684 | 687 |
attr.setDefaultValue(null); |
... | ... | |
688 | 691 |
dbfattr.getName(), |
689 | 692 |
DataTypes.LONG |
690 | 693 |
); |
694 |
attr.setDisplaySize(dbfattr.getSize()); |
|
691 | 695 |
attr.setPrecision(dbfattr.getPrecision()); |
692 | 696 |
attr.setScale(0); |
693 | 697 |
attr.setDefaultValue(null); |
... | ... | |
697 | 701 |
dbfattr.getName(), |
698 | 702 |
DataTypes.INT |
699 | 703 |
); |
704 |
attr.setDisplaySize(dbfattr.getSize()); |
|
700 | 705 |
attr.setPrecision(dbfattr.getPrecision()); |
701 | 706 |
attr.setScale(0); |
702 | 707 |
attr.setDefaultValue(null); |
... | ... | |
706 | 711 |
dbfattr.getName(), |
707 | 712 |
DataTypes.DECIMAL |
708 | 713 |
); |
714 |
attr.setDisplaySize(dbfattr.getSize()); |
|
709 | 715 |
attr.setPrecision(dbfattr.getPrecision()); |
710 | 716 |
attr.setScale(0); |
711 | 717 |
attr.setDefaultValue(null); |
... | ... | |
716 | 722 |
case DBFTYPE_NUMBER: |
717 | 723 |
if (dbfattr.getScale()==-1 || dbfattr.getScale() > 0) { |
718 | 724 |
attr = featureType.add(dbfattr.getName(), |
719 |
DataTypes.DECIMAL, dbfattr.getSize()); |
|
725 |
DataTypes.DECIMAL); |
|
726 |
attr.setDisplaySize(dbfattr.getSize()); |
|
720 | 727 |
attr.setPrecision(dbfattr.getPrecision()); |
721 | 728 |
attr.setScale(DataType.SCALE_NONE); |
722 | 729 |
attr.setDefaultValue(null); |
... | ... | |
724 | 731 |
} else { |
725 | 732 |
if (dbfattr.getPrecision() > DataType.LONG_MAX_PRECISION) { |
726 | 733 |
attr = featureType.add(dbfattr.getName(), |
727 |
DataTypes.DECIMAL, dbfattr.getSize()); |
|
734 |
DataTypes.DECIMAL); |
|
735 |
attr.setDisplaySize(dbfattr.getSize()); |
|
728 | 736 |
attr.setPrecision(dbfattr.getPrecision()); |
729 | 737 |
attr.setScale(DataType.SCALE_NONE); |
730 | 738 |
attr.setDefaultValue(null); |
... | ... | |
734 | 742 |
dbfattr.getName(), |
735 | 743 |
DataTypes.LONG |
736 | 744 |
); |
745 |
attr.setDisplaySize(dbfattr.getSize()); |
|
737 | 746 |
attr.setPrecision(dbfattr.getPrecision()); |
738 | 747 |
attr.setScale(0); |
739 | 748 |
attr.setDefaultValue(null); |
... | ... | |
743 | 752 |
dbfattr.getName(), |
744 | 753 |
DataTypes.INT |
745 | 754 |
); |
755 |
attr.setDisplaySize(dbfattr.getSize()); |
|
746 | 756 |
attr.setPrecision(dbfattr.getPrecision()); |
747 | 757 |
attr.setScale(0); |
748 | 758 |
attr.setDefaultValue(null); |
... | ... | |
752 | 762 |
dbfattr.getName(), |
753 | 763 |
DataTypes.DECIMAL |
754 | 764 |
); |
765 |
attr.setDisplaySize(dbfattr.getSize()); |
|
755 | 766 |
attr.setPrecision(dbfattr.getPrecision()); |
756 | 767 |
attr.setScale(0); |
757 | 768 |
attr.setDefaultValue(null); |
... | ... | |
866 | 877 |
case DataTypes.INT: |
867 | 878 |
if( displaySize<1 ) { |
868 | 879 |
if( precision>=DataType.INT_MAX_PRECISION ) { |
869 |
displaySize = precision;
|
|
880 |
displaySize = DataType.INT_MAX_PRECISION;
|
|
870 | 881 |
} else { |
871 | 882 |
displaySize = precision + 1; |
872 | 883 |
} |
... | ... | |
879 | 890 |
case DataTypes.LONG: |
880 | 891 |
if( displaySize<1 ) { |
881 | 892 |
if( precision>=DataType.LONG_MAX_PRECISION ) { |
882 |
displaySize = precision;
|
|
893 |
displaySize = DataType.LONG_MAX_PRECISION;
|
|
883 | 894 |
} else { |
884 | 895 |
displaySize = precision + 1; |
885 | 896 |
} |
Also available in: Unified diff