public static int getNumericType()

in src/main/java/org/apache/commons/ognl/OgnlOps.java [839:888]


    public static int getNumericType( int t1, int t2, 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 );
        }
        if ( t2 < MIN_REAL_TYPE ) {
            return Math.max( t1, t2 );
        }
        if ( t1 < INT )
        {
            return t2;
        }
        if ( t1 == BIGINT )
        {
            return BIGDEC;
        }
        return Math.max( DOUBLE, t2 );
    }