Class EnumSet

java.lang.Object
org.jibx.runtime.EnumSet

public class EnumSet extends Object
Named value set support class. This provides convenience methods to support working with a set of named static final int values, including translating them to and from String representations. It's intended for use with relatively small nonnegative int values.
Author:
Dennis M. Sosnoski
  • Field Details

    • VALUE_LIMIT

      public static final int VALUE_LIMIT
      Maximum int value supported for enumerations.
      See Also:
    • m_items

      private final EnumSet.EnumItem[] m_items
      Actual item definitions (used for extensions).
    • m_indexedNames

      private final String[] m_indexedNames
      Enumeration names in index number order.
    • m_orderedNames

      private final String[] m_orderedNames
      Enumeration names in sort order.
    • m_orderedIndexes

      private final int[] m_orderedIndexes
      Index values corresponding to sorted names.
  • Constructor Details

    • EnumSet

      public EnumSet(EnumSet.EnumItem[] items)
      Constructor from array of enumeration items. The supplied items can be in any order, and the numeric values do not need to be contiguous (but must be unique, nonnegative, and should be fairly small). Note that this constructor will reorder the items in the supplied array as a side effect.
      Parameters:
      items - array of enumeration items (will be reordered)
    • EnumSet

      public EnumSet(int start, String[] names)
      Constructor from array of names. The value associated with each name is just the position index in the array added to the start value.
      Parameters:
      start - item value for first added name
      names - array of names (no null entries allowed)
    • EnumSet

      public EnumSet(EnumSet base, int start, String[] names)
      Constructor from existing enumeration with added names. The value associated with each name is just the position index in the array added to the start value.
      Parameters:
      base - base enumeration to be extended
      start - item value for first added name
      names - array of names (no null entries allowed)
  • Method Details

    • buildItems

      private static EnumSet.EnumItem[] buildItems(int start, String[] names)
      Generate array of enumeration items from array of names. The value associated with each name is just the position index in the array added to the start value.
      Parameters:
      start - item value for first added name
      names - array of names (no null entries allowed)
    • mergeItems

      private static EnumSet.EnumItem[] mergeItems(EnumSet base, int start, String[] names)
      Generate array of enumeration items from base enumeration and array of names. The value associated with each name is just the position index in the array added to the start value.
      Parameters:
      base - base enumeration to be extended
      start - item value for first added name
      names - array of names (no null entries allowed)
    • getName

      public String getName(int value)
      Get name for value if defined.
      Parameters:
      value - enumeration value
      Returns:
      name for value, or null if not defined
    • getNameChecked

      public String getNameChecked(int value)
      Get name for value. If the supplied value is not defined in the enumeration this throws an exception.
      Parameters:
      value - enumeration value
      Returns:
      name for value
    • getValue

      public int getValue(String name)
      Get value for name if defined.
      Parameters:
      name - possible enumeration name
      Returns:
      value for name, or -1 if not found in enumeration
    • getValueChecked

      public int getValueChecked(String name)
      Get value for name. If the supplied name is not present in the enumeration this throws an exception.
      Parameters:
      name - enumeration name
      Returns:
      value for name
    • checkValue

      public void checkValue(int value)
      Check value with exception. Throws an exception if the supplied value is not defined by this enumeration.
      Parameters:
      value -
    • maxIndex

      public int maxIndex()
      Get maximum index value in enumeration set.
      Returns:
      maximum