in streampipes-connect-shared/src/main/java/org/apache/streampipes/connect/shared/DatatypeUtils.java [91:131]
public static Class<?> getTypeClass(String value,
boolean preferFloatingPointNumber) {
var targetClass = String.class;
if (NumberUtils.isParsable(value)) {
Class<?> numberClass;
try {
long longValue = Long.parseLong(value);
numberClass = longValue > Integer.MAX_VALUE ? Long.class : Integer.class;
if (preferFloatingPointNumber) {
return numberClass == Long.class ? Double.class : Float.class;
} else {
return numberClass;
}
} catch (NumberFormatException ignored) {
}
try {
double doubleValue = Double.parseDouble(value);
numberClass = doubleValue > Float.MAX_VALUE ? Double.class : Float.class;
if (preferFloatingPointNumber) {
return numberClass == Double.class ? Double.class : Float.class;
} else {
return numberClass;
}
} catch (NumberFormatException ignored) {
}
try {
Double.parseDouble(value);
return Float.class;
} catch (NumberFormatException ignored) {
}
}
if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("false")) {
return Boolean.class;
}
return targetClass;
}