Revision 46162 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeature.java
DefaultFeature.java | ||
---|---|---|
757 | 757 |
return this.getFromProfile(descriptor.getIndex()); |
758 | 758 |
} |
759 | 759 |
|
760 |
private Object get(String name, Class theClass, int type) { |
|
761 |
Object value = this.get(name); |
|
762 |
if (theClass.isInstance(value)) { |
|
763 |
return value; |
|
764 |
} |
|
765 |
try { |
|
766 |
return this.getDataTypesManager().coerce(type, value); |
|
767 |
} catch (CoercionException e) { |
|
768 |
|
|
769 |
if (value == null) { |
|
770 |
return null; |
|
771 |
} |
|
772 |
throw new IllegalArgumentException( |
|
773 |
"Can't convert to " + theClass.getName() |
|
774 |
+ " from '" + value.getClass().getName() |
|
775 |
+ "' with value '" + value.toString() + "'."); |
|
776 |
} |
|
777 |
} |
|
778 |
|
|
760 | 779 |
@Override |
761 | 780 |
public Object get(String name) { |
762 | 781 |
int index = this.data.getType().getIndex(name); |
... | ... | |
955 | 974 |
|
956 | 975 |
@Override |
957 | 976 |
public byte[] getByteArray(String name) { |
958 |
return this.getByteArray(this.data.getType().getIndex(name));
|
|
977 |
return (byte[]) this.get(name);
|
|
959 | 978 |
} |
960 | 979 |
|
961 | 980 |
@Override |
... | ... | |
965 | 984 |
|
966 | 985 |
@Override |
967 | 986 |
public Object[] getArray(String name) { |
968 |
return this.getArray(this.data.getType().getIndex(name));
|
|
987 |
return (Object[]) this.get(name);
|
|
969 | 988 |
} |
970 | 989 |
|
971 | 990 |
@Override |
... | ... | |
975 | 994 |
|
976 | 995 |
@Override |
977 | 996 |
public boolean getBoolean(String name) { |
978 |
return this.getBoolean(this.data.getType().getIndex(name)); |
|
997 |
Boolean value = ((Boolean) this.get(name, Boolean.class, DataTypes.BOOLEAN)); |
|
998 |
if (value == null) { |
|
999 |
return false; |
|
1000 |
} |
|
1001 |
return value; |
|
979 | 1002 |
} |
980 | 1003 |
|
981 | 1004 |
@Override |
... | ... | |
989 | 1012 |
|
990 | 1013 |
@Override |
991 | 1014 |
public byte getByte(String name) { |
992 |
return this.getByte(this.data.getType().getIndex(name)); |
|
1015 |
Byte value = ((Byte) this.get(name, Byte.class, DataTypes.BYTE)); |
|
1016 |
if (value == null) { |
|
1017 |
return 0; |
|
1018 |
} |
|
1019 |
return value; |
|
993 | 1020 |
} |
994 | 1021 |
|
995 | 1022 |
@Override |
... | ... | |
1003 | 1030 |
|
1004 | 1031 |
@Override |
1005 | 1032 |
public java.sql.Date getDate(String name) { |
1006 |
return this.getDate(this.data.getType().getIndex(name)); |
|
1033 |
java.sql.Date value = ((java.sql.Date) this.get(name, java.sql.Date.class, DataTypes.DATE)); |
|
1034 |
return value; |
|
1007 | 1035 |
} |
1008 | 1036 |
|
1009 | 1037 |
@Override |
... | ... | |
1014 | 1042 |
|
1015 | 1043 |
@Override |
1016 | 1044 |
public java.sql.Time getTime(String name) { |
1017 |
return this.getTime(this.data.getType().getIndex(name)); |
|
1045 |
java.sql.Time value = ((java.sql.Time) this.get(name, java.sql.Time.class, DataTypes.TIME)); |
|
1046 |
return value; |
|
1018 | 1047 |
} |
1019 | 1048 |
|
1020 | 1049 |
@Override |
... | ... | |
1025 | 1054 |
|
1026 | 1055 |
@Override |
1027 | 1056 |
public java.sql.Timestamp getTimestamp(String name) { |
1028 |
return this.getTimestamp(this.data.getType().getIndex(name)); |
|
1057 |
java.sql.Timestamp value = ((java.sql.Timestamp) this.get(name, java.sql.Timestamp.class, DataTypes.TIMESTAMP)); |
|
1058 |
return value; |
|
1029 | 1059 |
} |
1030 | 1060 |
|
1031 | 1061 |
@Override |
... | ... | |
1036 | 1066 |
|
1037 | 1067 |
@Override |
1038 | 1068 |
public double getDouble(String name) { |
1039 |
return this.getDouble(this.data.getType().getIndex(name)); |
|
1069 |
Double value = ((Double) this.get(name, Double.class, DataTypes.DOUBLE)); |
|
1070 |
if (value == null) { |
|
1071 |
return 0; |
|
1072 |
} |
|
1073 |
return value; |
|
1040 | 1074 |
} |
1041 | 1075 |
|
1042 | 1076 |
@Override |
... | ... | |
1051 | 1085 |
|
1052 | 1086 |
@Override |
1053 | 1087 |
public BigDecimal getDecimal(String name) { |
1054 |
return this.getDecimal(this.data.getType().getIndex(name)); |
|
1088 |
BigDecimal value = ((BigDecimal) this.get(name, BigDecimal.class, DataTypes.DECIMAL)); |
|
1089 |
return value; |
|
1055 | 1090 |
} |
1056 | 1091 |
|
1057 | 1092 |
@Override |
... | ... | |
1072 | 1107 |
|
1073 | 1108 |
@Override |
1074 | 1109 |
public float getFloat(String name) { |
1075 |
return this.getFloat(this.data.getType().getIndex(name)); |
|
1110 |
Float value = ((Float) this.get(name, Float.class, DataTypes.FLOAT)); |
|
1111 |
if (value == null) { |
|
1112 |
return 0; |
|
1113 |
} |
|
1114 |
return value; |
|
1076 | 1115 |
} |
1077 | 1116 |
|
1078 | 1117 |
@Override |
... | ... | |
1086 | 1125 |
|
1087 | 1126 |
@Override |
1088 | 1127 |
public Geometry getGeometry(String name) { |
1089 |
return this.getGeometry(this.data.getType().getIndex(name));
|
|
1128 |
return (Geometry) this.get(name, Geometry.class, DataTypes.GEOMETRY);
|
|
1090 | 1129 |
} |
1091 | 1130 |
|
1092 | 1131 |
@Override |
... | ... | |
1096 | 1135 |
|
1097 | 1136 |
@Override |
1098 | 1137 |
public int getInt(String name) { |
1099 |
return this.getInt(this.data.getType().getIndex(name)); |
|
1138 |
Integer value = ((Integer) this.get(name, Integer.class, DataTypes.INT)); |
|
1139 |
if (value == null) { |
|
1140 |
return 0; |
|
1141 |
} |
|
1142 |
return value; |
|
1100 | 1143 |
} |
1101 | 1144 |
|
1102 | 1145 |
@Override |
... | ... | |
1110 | 1153 |
|
1111 | 1154 |
@Override |
1112 | 1155 |
public long getLong(String name) { |
1113 |
return this.getLong(this.data.getType().getIndex(name)); |
|
1156 |
Long value = ((Long) this.get(name, Long.class, DataTypes.LONG)); |
|
1157 |
if (value == null) { |
|
1158 |
return 0; |
|
1159 |
} |
|
1160 |
return value; |
|
1114 | 1161 |
} |
1115 | 1162 |
|
1116 | 1163 |
@Override |
... | ... | |
1124 | 1171 |
|
1125 | 1172 |
@Override |
1126 | 1173 |
public String getString(String name) { |
1127 |
return this.getString(this.data.getType().getIndex(name));
|
|
1174 |
return (String) this.get(name, String.class, DataTypes.STRING);
|
|
1128 | 1175 |
} |
1129 | 1176 |
|
1130 | 1177 |
@Override |
Also available in: Unified diff