dap4/d4core/src/main/java/dap4/core/util/CoreTypeFcns.java
static public long forceRange(TypeSort basetype, long value)
    {
        assert basetype.isIntegerType() : "Internal error";
        switch (basetype) {
        case Char:
            value = minmax(value, 0, 255);
            break;
        case Int8:
            value = minmax(value, (long) Byte.MIN_VALUE, (long) Byte.MAX_VALUE);
            break;
        case UInt8:
            value = value & 0xFFL;
            break;
        case Int16:
            value = minmax(value, (long) Short.MIN_VALUE, (long) Short.MAX_VALUE);
            break;
        case UInt16:
            value = value & 0xFFFFL;
            break;
        case Int32:
            value = minmax(value, (long) Integer.MIN_VALUE, (long) Integer.MAX_VALUE);
            break;
        case UInt32:
            value = value & 0xFFFFFFFFL;
            break;
        case Int64:
        case UInt64:
            break; // value = value case Int64:
        default:
        }
        return value;
    }
static public long forceRange(TypeSort basetype, long value)
    {
        assert basetype.isIntegerType() : "Internal error";
        switch (basetype) {
        case Char:
            value = minmax(value, 0, 255);
            break;
        case Int8:
            value = minmax(value, (long) Byte.MIN_VALUE, (long) Byte.MAX_VALUE);
            break;
        case UInt8:
            value = value & 0xFFL;
            break;
        case Int16:
            value = minmax(value, (long) Short.MIN_VALUE, (long) Short.MAX_VALUE);
            break;
        case UInt16:
            value = value & 0xFFFFL;
            break;
        case Int32:
            value = minmax(value, (long) Integer.MIN_VALUE, (long) Integer.MAX_VALUE);
            break;
        case UInt32:
            value = value & 0xFFFFFFFFL;
            break;
        case Int64:
        case UInt64:
            break; // value = value case Int64:
        default:
        }
        return value;
    }
static public long forceRange ( TypeSort basetype , long value ) { assert basetype . isIntegerType ( ) : "Internal error" ; switch ( basetype ) { case Char : value = minmax ( value , 0 , 255 ) ; break ; case Int8 : value = minmax ( value , ( long ) Byte . MIN_VALUE , ( long ) Byte . MAX_VALUE ) ; break ; case UInt8 : value = value & 0xFF L ; break ; case Int16 : value = minmax ( value , ( long ) Short . MIN_VALUE , ( long ) Short . MAX_VALUE ) ; break ; case UInt16 : value = value & 0xFFFF L ; break ; case Int32 : value = minmax ( value , ( long ) Integer . MIN_VALUE , ( long ) Integer . MAX_VALUE ) ; break ; case UInt32 : value = value & 0xFFFFFFFF L ; break ; case Int64 : case UInt64 : break ; // value = value case Int64: default : } return value ; }
Force a numeric value to be in a specified range
Only defined for simple integers (ValueClass LONG)
WARNING: unsigned values are forced into the
signed size, but the proper bit pattern is maintained.
The term "force" means that if the value is outside the typed
min/max values, it is pegged to the min or max value depending
on the sign. Note that truncation is not used.

@param basetype the type to force value to in range
@param value    the value to force
@return forced value
@throws ConversionException if forcing is not possible
Force a numeric value to be in a specified range Only defined for simple integers ( ValueClass LONG ) WARNING : unsigned values are forced into the signed size but the proper bit pattern is maintained . The term force means that if the value is outside the typed min / max values it is pegged to the min or max value depending on the sign . Note that truncation is not used .