Enum NativeSeedType

  • All Implemented Interfaces:
    Serializable, Comparable<NativeSeedType>

    public enum NativeSeedType
    extends Enum<NativeSeedType>
    The native seed type. Contains values for all native seed types and methods to convert supported seed types to the native seed type.

    Valid native seed types are:

    • Integer
    • Long
    • int[]
    • long[]

    Valid types for seed conversion are:

    • Integer (or int)
    • Long (or long)
    • int[]
    • long[]
    • byte[]
    Since:
    1.3
    • Method Detail

      • values

        public static NativeSeedType[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (NativeSeedType c : NativeSeedType.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static NativeSeedType valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null
      • getType

        public Class<?> getType()
        Gets the class type of the native seed.
        Returns:
        the type
      • getBytes

        public int getBytes()
        Gets the number of bytes required to represent the native seed type. If the type is an array then this represents the size of a single value of the type.
        Returns:
        the number of bytes
      • createSeed

        public Object createSeed​(int size)
        Creates the seed. The output seed type is determined by the native seed type. If the output is an array the required size of the array can be specified.
        Parameters:
        size - The size of the seed (array types only).
        Returns:
        the seed
      • createSeed

        public abstract Object createSeed​(int size,
                                          int from,
                                          int to)
        Creates the seed. The output seed type is determined by the native seed type. If the output is an array the required size of the array can be specified and a sub-range that must not be all-zero.
        Parameters:
        size - The size of the seed (array types only).
        from - The start of the not all-zero sub-range (inclusive; array types only).
        to - The end of the not all-zero sub-range (exclusive; array types only).
        Returns:
        the seed
        Throws:
        IndexOutOfBoundsException - if the sub-range is out of bounds
        Since:
        1.5
      • convertSeed

        public Object convertSeed​(Object seed,
                                  int size)
        Converts the input seed from any of the supported seed types to the native seed type. If the output is an array the required size of the array can be specified.
        Parameters:
        seed - Input seed.
        size - The size of the output seed (array types only).
        Returns:
        the native seed.
        Throws:
        UnsupportedOperationException - if the seed type is invalid.
      • convert

        protected abstract Object convert​(Integer seed,
                                          int size)
        Convert the input Integer seed to the native seed type.
        Parameters:
        seed - Input seed.
        size - The size of the output seed (array types only).
        Returns:
        the native seed.
      • convert

        protected abstract Object convert​(Long seed,
                                          int size)
        Convert the input Long seed to the native seed type.
        Parameters:
        seed - Input seed.
        size - The size of the output seed (array types only).
        Returns:
        the native seed.
      • convert

        protected abstract Object convert​(int[] seed,
                                          int size)
        Convert the input int[] seed to the native seed type.
        Parameters:
        seed - Input seed.
        size - The size of the output seed (array types only).
        Returns:
        the native seed.
      • convert

        protected abstract Object convert​(long[] seed,
                                          int size)
        Convert the input long[] seed to the native seed type.
        Parameters:
        seed - Input seed.
        size - The size of the output seed (array types only).
        Returns:
        the native seed.
      • convert

        protected abstract Object convert​(byte[] seed,
                                          int size)
        Convert the input byte[] seed to the native seed type.
        Parameters:
        seed - Input seed.
        size - The size of the output seed (array types only).
        Returns:
        the native seed.
      • convertSeedToBytes

        public static byte[] convertSeedToBytes​(Object seed)
        Converts the input seed from any of the supported seed types to bytes.
        Parameters:
        seed - Input seed.
        Returns:
        the seed bytes.
        Throws:
        UnsupportedOperationException - if the seed type is invalid.