in wicket-util/src/main/java/org/apache/wicket/util/lang/Objects.java [442:496]
public static int getNumericType(int t1, int t2, final boolean canBeNonNumeric)
{
if (t1 == t2)
{
return t1;
}
if (canBeNonNumeric &&
((t1 == NONNUMERIC) || (t2 == NONNUMERIC) || (t1 == CHAR) || (t2 == CHAR)))
{
return NONNUMERIC;
}
if (t1 == NONNUMERIC)
{
t1 = DOUBLE; // Try to interpret strings as doubles...
}
if (t2 == NONNUMERIC)
{
t2 = DOUBLE; // Try to interpret strings as doubles...
}
if (t1 >= MIN_REAL_TYPE)
{
if (t2 >= MIN_REAL_TYPE)
{
return Math.max(t1, t2);
}
if (t2 < INT)
{
return t1;
}
if (t2 == BIGINT)
{
return BIGDEC;
}
return Math.max(DOUBLE, t1);
}
else if (t2 >= MIN_REAL_TYPE)
{
if (t1 < INT)
{
return t2;
}
if (t1 == BIGINT)
{
return BIGDEC;
}
return Math.max(DOUBLE, t2);
}
else
{
return Math.max(t1, t2);
}
}