in src/main/java/org/apache/commons/ognl/OgnlOps.java [912:945]
public static Number newInteger( int type, long value )
{
switch ( type )
{
case BOOL:
case CHAR:
case INT:
return (int) value;
case FLOAT:
if ( (long) (float) value == value )
{
return (float) value;
}
// else fall through:
case DOUBLE:
if ( (long) (double) value == value )
{
return (double) value;
}
// else fall through:
case LONG:
return value;
case BYTE:
return (byte) value;
case SHORT:
return (short) value;
default:
return BigInteger.valueOf( value );
}
}