in json/src/main/java/org/netbeans/html/json/spi/Proto.java [839:874]
public final <T> T extractValue(Class<T> type, Object val) {
if (Number.class.isAssignableFrom(type)) {
val = numberValue(val);
}
if (Boolean.class == type) {
val = boolValue(val);
}
if (String.class == type) {
val = stringValue(val);
}
if (Character.class == type) {
val = charValue(val);
}
if (Integer.class == type) {
val = val instanceof Number ? ((Number) val).intValue() : 0;
}
if (Long.class == type) {
val = val instanceof Number ? ((Number) val).longValue() : 0;
}
if (Short.class == type) {
val = val instanceof Number ? ((Number) val).shortValue() : 0;
}
if (Byte.class == type) {
val = val instanceof Number ? ((Number) val).byteValue() : 0;
}
if (Double.class == type) {
val = val instanceof Number ? ((Number) val).doubleValue() : Double.NaN;
}
if (Float.class == type) {
val = val instanceof Number ? ((Number) val).floatValue() : Float.NaN;
}
if (type.isEnum() && val instanceof String) {
val = Enum.valueOf(type.asSubclass(Enum.class), (String)val);
}
return type.cast(val);
}