Package org.joou

Class UInteger

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<UInteger>

    public final class UInteger
    extends UNumber
    implements java.lang.Comparable<UInteger>
    The unsigned int type
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.lang.Class<UInteger> CLASS  
      private static java.lang.String CLASS_NAME  
      private static int DEFAULT_PRECACHE_SIZE
      Default size for the value cache.
      static UInteger MAX
      A constant holding the maximum value an unsigned int can have as UInteger, 232-1.
      static long MAX_VALUE
      A constant holding the maximum value an unsigned int can have, 232-1.
      static UInteger MIN
      A constant holding the minimum value an unsigned int can have as UInteger, 0.
      static long MIN_VALUE
      A constant holding the minimum value an unsigned int can have, 0.
      private static java.lang.String PRECACHE_PROPERTY
      System property name for the property to set the size of the pre-cache.
      private static long serialVersionUID
      Generated UID
      private long value
      The value modelling the content of this unsigned int
      private static UInteger[] VALUES
      Cached values
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private UInteger​(int value)
      Create an unsigned int by masking it with 0xFFFFFFFF i.e.
      private UInteger​(long value)
      Create an unsigned int
      private UInteger​(long value, boolean unused)
      Unchecked internal constructor.
      private UInteger​(java.lang.String value)
      Create an unsigned int
    • Field Detail

      • CLASS

        private static final java.lang.Class<UInteger> CLASS
      • CLASS_NAME

        private static final java.lang.String CLASS_NAME
      • PRECACHE_PROPERTY

        private static final java.lang.String PRECACHE_PROPERTY
        System property name for the property to set the size of the pre-cache.
      • DEFAULT_PRECACHE_SIZE

        private static final int DEFAULT_PRECACHE_SIZE
        Default size for the value cache.
        See Also:
        Constant Field Values
      • serialVersionUID

        private static final long serialVersionUID
        Generated UID
        See Also:
        Constant Field Values
      • VALUES

        private static final UInteger[] VALUES
        Cached values
      • MIN_VALUE

        public static final long MIN_VALUE
        A constant holding the minimum value an unsigned int can have, 0.
        See Also:
        Constant Field Values
      • MAX_VALUE

        public static final long MAX_VALUE
        A constant holding the maximum value an unsigned int can have, 232-1.
        See Also:
        Constant Field Values
      • MIN

        public static final UInteger MIN
        A constant holding the minimum value an unsigned int can have as UInteger, 0.
      • MAX

        public static final UInteger MAX
        A constant holding the maximum value an unsigned int can have as UInteger, 232-1.
      • value

        private final long value
        The value modelling the content of this unsigned int
    • Constructor Detail

      • UInteger

        private UInteger​(long value,
                         boolean unused)
        Unchecked internal constructor. This serves two purposes: first it allows UInteger(long) to stay deprecated without warnings and second constructor without unnecessary value checks.
        Parameters:
        value - The value to wrap
        unused - Unused parameter to distinguish between this and the deprecated public constructor.
      • UInteger

        private UInteger​(long value)
                  throws java.lang.NumberFormatException
        Create an unsigned int
        Throws:
        java.lang.NumberFormatException - If value is not in the range of an unsigned int
      • UInteger

        private UInteger​(int value)
        Create an unsigned int by masking it with 0xFFFFFFFF i.e. (int) -1 becomes (uint) 4294967295
      • UInteger

        private UInteger​(java.lang.String value)
                  throws java.lang.NumberFormatException
        Create an unsigned int
        Throws:
        java.lang.NumberFormatException - If value does not contain a parsable unsigned int.
    • Method Detail

      • getPrecacheSize

        private static final int getPrecacheSize()
        Figure out the size of the precache.
        Returns:
        The parsed value of the system property PRECACHE_PROPERTY or DEFAULT_PRECACHE_SIZE if the property is not set, not a number or retrieving results in a SecurityException. If the parsed value is zero or negative no cache will be created. If the value is larger than Integer.MAX_VALUE then Integer#MAX_VALUE will be used.
      • mkValues

        private static final UInteger[] mkValues()
        Generate a cached value for initial unsigned integer values.
        Returns:
        Array of cached values for UInteger
      • getCached

        private static UInteger getCached​(long value)
        Retrieve a cached value.
        Parameters:
        value - Cached value to retrieve
        Returns:
        Cached value if one exists. Null otherwise.
      • valueOfUnchecked

        private static UInteger valueOfUnchecked​(long value)
        Get the value of a long without checking the value.
      • valueOf

        public static UInteger valueOf​(java.lang.String value)
                                throws java.lang.NumberFormatException
        Create an unsigned int
        Throws:
        java.lang.NumberFormatException - If value does not contain a parsable unsigned int.
      • valueOf

        public static UInteger valueOf​(int value)
        Create an unsigned int by masking it with 0xFFFFFFFF i.e. (int) -1 becomes (uint) 4294967295
      • valueOf

        public static UInteger valueOf​(long value)
                                throws java.lang.NumberFormatException
        Create an unsigned int
        Throws:
        java.lang.NumberFormatException - If value is not in the range of an unsigned byte
      • rangeCheck

        private static long rangeCheck​(long value)
                                throws java.lang.NumberFormatException
        Throw exception if value out of range (long version)
        Parameters:
        value - Value to check
        Returns:
        value if it is in range
        Throws:
        java.lang.NumberFormatException - if value is out of range
      • readResolve

        private java.lang.Object readResolve()
                                      throws java.io.ObjectStreamException
        Replace version read through deserialization with cached version.
        Returns:
        cached instance of this object's value if one exists, otherwise this object
        Throws:
        java.io.ObjectStreamException
      • intValue

        public int intValue()
        Specified by:
        intValue in class java.lang.Number
      • longValue

        public long longValue()
        Specified by:
        longValue in class java.lang.Number
      • floatValue

        public float floatValue()
        Specified by:
        floatValue in class java.lang.Number
      • doubleValue

        public double doubleValue()
        Specified by:
        doubleValue in class java.lang.Number
      • toBigInteger

        public java.math.BigInteger toBigInteger()
        Description copied from class: UNumber
        Get this number as a BigInteger. This is a convenience method for calling new BigInteger(toString())
        Overrides:
        toBigInteger in class UNumber
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • compareTo

        public int compareTo​(UInteger o)
        Specified by:
        compareTo in interface java.lang.Comparable<UInteger>
      • add

        public UInteger add​(int val)
      • subtract

        public UInteger subtract​(int val)