in hugegraph-client/src/main/java/org/apache/hugegraph/serializer/direct/struct/DataType.java [128:165]
public <V> Number valueToNumber(V value) {
if (!(this.isNumber() && value instanceof Number)) {
return null;
}
if (this.clazz.isInstance(value)) {
return (Number) value;
}
Number number;
try {
switch (this) {
case BYTE:
number = Byte.valueOf(value.toString());
break;
case INT:
number = Integer.valueOf(value.toString());
break;
case LONG:
number = Long.valueOf(value.toString());
break;
case FLOAT:
number = Float.valueOf(value.toString());
break;
case DOUBLE:
number = Double.valueOf(value.toString());
break;
default:
throw new AssertionError(String.format(
"Number type only contains Byte, Integer, " +
"Long, Float, Double, but got %s", this.clazz()));
}
} catch (NumberFormatException e) {
throw new IllegalArgumentException(String.format(
"Can't read '%s' as %s: %s",
value, this.name, e.getMessage()));
}
return number;
}