Revision 43425 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

View differences:

CSVStoreProvider.java
29 29
import java.io.FileWriter;
30 30
import java.io.IOException;
31 31
import java.io.InputStreamReader;
32
import java.net.URI;
32 33
import java.net.URL;
33 34
import java.nio.charset.Charset;
34 35
import java.util.ArrayList;
......
1023 1024
                sizes[i] = -1;
1024 1025
                FeatureAttributeDescriptor ad = ftype.getAttributeDescriptor(i);
1025 1026
                coercion[i] = ad.getDataType().getCoercion();
1026
                if (ad.getDataType().getType() == DataTypes.STRING) {
1027
                switch (ad.getDataType().getType() ) {
1028
                case DataTypes.STRING:
1027 1029
                    if (ad.getSize() == 0) {
1028 1030
                        // Es un string y no tiene un size asignado.
1029 1031
                        // Lo ponemos a cero para calcularlo.
1030 1032
                        sizes[i] = 0;
1031 1033
                    }
1034
                    break;
1035
                case DataTypes.URL:
1036
                case DataTypes.URI:
1037
                case DataTypes.FILE:
1038
                    sizes[i] = 0;
1032 1039
                }
1033 1040
            }
1034 1041
            if (ftype.getDefaultGeometryAttributeName() != null) {
......
1061 1068
                            value = coercion[i].coerce(rawvalue);
1062 1069
                        }
1063 1070
                        feature.set(i, value);
1064
                        if (sizes[i] >= 0 && value instanceof String ) {
1065
                            int x = ((String) value).length();
1071
                        if (sizes[i] >= 0 && 
1072
                            (value instanceof String || value instanceof URL || 
1073
                             value instanceof URI || value instanceof File) ) {
1074
                            int x = value.toString().length();
1066 1075
                            if (sizes[i] < x) {
1067 1076
                                sizes[i] = x;
1068 1077
                            }

Also available in: Unified diff