in axis-rt-core/src/main/java/org/apache/axis/encoding/ser/SimpleDeserializer.java [257:328]
private Object makeBasicValue(String source) throws Exception {
// If the javaType is a boolean, except a number of different sources
if (javaType == boolean.class ||
javaType == Boolean.class) {
// This is a pretty lame test, but it is what the previous code did.
switch (source.charAt(0)) {
case '0': case 'f': case 'F':
return Boolean.FALSE;
case '1': case 't': case 'T':
return Boolean.TRUE;
default:
throw new NumberFormatException(
Messages.getMessage("badBool00"));
}
}
// If expecting a Float or a Double, need to accept some special cases.
if (javaType == float.class ||
javaType == java.lang.Float.class) {
if (source.equals("NaN")) {
return new Float(Float.NaN);
} else if (source.equals("INF")) {
return new Float(Float.POSITIVE_INFINITY);
} else if (source.equals("-INF")) {
return new Float(Float.NEGATIVE_INFINITY);
} else {
return new Float(source);
}
}
if (javaType == double.class ||
javaType == java.lang.Double.class) {
if (source.equals("NaN")) {
return new Double(Double.NaN);
} else if (source.equals("INF")) {
return new Double(Double.POSITIVE_INFINITY);
} else if (source.equals("-INF")) {
return new Double(Double.NEGATIVE_INFINITY);
} else {
return new Double(source);
}
}
if (javaType == int.class ||
javaType == java.lang.Integer.class) {
return new Integer(source);
}
if (javaType == short.class ||
javaType == java.lang.Short.class) {
return new Short(source);
}
if (javaType == long.class ||
javaType == java.lang.Long.class) {
return new Long(source);
}
if (javaType == byte.class ||
javaType == java.lang.Byte.class) {
return new Byte(source);
}
if (javaType == org.apache.axis.types.URI.class) {
return new org.apache.axis.types.URI(source);
}
return null;
}