Enum NativeSeedType

java.lang.Object
java.lang.Enum<NativeSeedType>
org.apache.commons.rng.simple.internal.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
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    The seed type is Integer.
    The seed type is int[].
    The seed type is Long.
    The seed type is long[].
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final int
    Define the number of bytes required to represent the native seed.
    private static final int
    Maximum length of the seed array (for creating array seeds).
    private final Class<?>
    Define the class type of the native seed.
    private static final String
    Error message for unrecognized seed types.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    NativeSeedType(Class<?> type, int bytes)
    Instantiates a new native seed type.
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract Object
    convert(byte[] seed, int size)
    Convert the input byte[] seed to the native seed type.
    protected abstract Object
    convert(int[] seed, int size)
    Convert the input int[] seed to the native seed type.
    protected abstract Object
    convert(long[] seed, int size)
    Convert the input long[] seed to the native seed type.
    protected abstract Object
    convert(Integer seed, int size)
    Convert the input Integer seed to the native seed type.
    protected abstract Object
    convert(Long seed, int size)
    Convert the input Long seed to the native seed type.
    convertSeed(Object seed, int size)
    Converts the input seed from any of the supported seed types to the native seed type.
    static byte[]
    Converts the input seed from any of the supported seed types to bytes.
    createSeed(int size)
    Creates the seed.
    abstract Object
    createSeed(int size, int from, int to)
    Creates the seed.
    int
    Gets the number of bytes required to represent the native seed type.
    Gets the class type of the native seed.
    private static String
    Create an unrecognized seed message.
    Returns the enum constant of this type with the specified name.
    Returns an array containing the constants of this enum type, in the order they are declared.

    Methods inherited from class java.lang.Enum

    clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • INT

      public static final NativeSeedType INT
      The seed type is Integer.
    • LONG

      public static final NativeSeedType LONG
      The seed type is Long.
    • INT_ARRAY

      public static final NativeSeedType INT_ARRAY
      The seed type is int[].
    • LONG_ARRAY

      public static final NativeSeedType LONG_ARRAY
      The seed type is long[].
  • Field Details

    • UNRECOGNISED_SEED

      private static final String UNRECOGNISED_SEED
      Error message for unrecognized seed types.
      See Also:
    • RANDOM_SEED_ARRAY_SIZE

      private static final int RANDOM_SEED_ARRAY_SIZE
      Maximum length of the seed array (for creating array seeds).
      See Also:
    • type

      private final Class<?> type
      Define the class type of the native seed.
    • bytes

      private final int bytes
      Define the number of bytes required to represent the native seed. If the type is an array then this represents the size of a single value of the type.
  • Constructor Details

    • NativeSeedType

      private NativeSeedType(Class<?> type, int bytes)
      Instantiates a new native seed type.
      Parameters:
      type - Define the class type of the native seed.
      bytes - Define the number of bytes required to represent the native seed.
  • Method Details

    • values

      public static NativeSeedType[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      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.
    • unrecognizedSeedMessage

      private static String unrecognizedSeedMessage(Object seed)
      Create an unrecognized seed message. This will add the class type of the seed.
      Parameters:
      seed - the seed
      Returns:
      the message