Package mondrian.olap

Class EnumeratedValues<V extends EnumeratedValues.Value>

java.lang.Object
mondrian.olap.EnumeratedValues<V>
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
Category

public class EnumeratedValues<V extends EnumeratedValues.Value> extends Object implements Cloneable
EnumeratedValues is a helper class for declaring a set of symbolic constants which have names, ordinals, and possibly descriptions. The ordinals do not have to be contiguous.

Typically, for a particular set of constants, you derive a class from this interface, and declare the constants as public static final members. Give it a private constructor, and a public static final ClassName instance member to hold the singleton instance. Access is a simple example of this.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    BasicValue is an obvious implementation of EnumeratedValues.Value.
    static interface 
    A Value represents a member of an enumerated type.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new empty, mutable enumeration.
    EnumeratedValues(Class<? extends Enum> clazz)
     
    Creates an enumeration, initialize it with an array of strings, and freezes it.
    EnumeratedValues(String[] names, int[] codes)
    Create an enumeration, initializes it with arrays of code/name pairs, and freezes it.
    EnumeratedValues(String[] names, int[] codes, String[] descriptions)
    Create an enumeration, initializes it with arrays of code/name pairs, and freezes it.
    EnumeratedValues(V[] values)
    Creates an enumeration, with an array of values, and freezes it.
  • Method Summary

    Modifier and Type
    Method
    Description
    badValue(int ordinal)
    Returns an error indicating that the value is illegal.
     
    final String
    getDescription(int ordinal)
    Returns the description associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration.
    final int
    Returns the largest ordinal defined by this enumeration.
    final int
    Returns the smallest ordinal defined by this enumeration.
    Creates a mutable enumeration from an existing enumeration, which may already be immutable.
    final String
    getName(int ordinal)
    Returns the name associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration.
    Returns the names in this enumeration, in declaration order.
    final int
    Returns the ordinal associated with a name
    final V
    getValue(int ordinal)
    Returns the name associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration.
    getValue(String name, boolean fail)
    Returns the value associated with a name.
    Returns the members of this enumeration, sorted by name.
    final boolean
     
    final boolean
    isValid(int ordinal)
    Returns whether ordinal is valid for this enumeration.
    void
    Freezes the enumeration, preventing it from being further modified.
    void
    register(V value)
    Associates a symbolic name with an ordinal value.
    unexpected(V value)
    Returns an exception indicating that we didn't expect to find this value here.

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • EnumeratedValues

      public EnumeratedValues()
      Creates a new empty, mutable enumeration.
    • EnumeratedValues

      public EnumeratedValues(V[] values)
      Creates an enumeration, with an array of values, and freezes it.
    • EnumeratedValues

      public EnumeratedValues(String[] names)
      Creates an enumeration, initialize it with an array of strings, and freezes it.
    • EnumeratedValues

      public EnumeratedValues(String[] names, int[] codes)
      Create an enumeration, initializes it with arrays of code/name pairs, and freezes it.
    • EnumeratedValues

      public EnumeratedValues(String[] names, int[] codes, String[] descriptions)
      Create an enumeration, initializes it with arrays of code/name pairs, and freezes it.
    • EnumeratedValues

      public EnumeratedValues(Class<? extends Enum> clazz)
  • Method Details

    • clone

      public EnumeratedValues<V> clone()
      Overrides:
      clone in class Object
    • getMutableClone

      public EnumeratedValues getMutableClone()
      Creates a mutable enumeration from an existing enumeration, which may already be immutable.
    • register

      public void register(V value)
      Associates a symbolic name with an ordinal value.
    • makeImmutable

      public void makeImmutable()
      Freezes the enumeration, preventing it from being further modified.
    • isImmutable

      public final boolean isImmutable()
    • getMin

      public final int getMin()
      Returns the smallest ordinal defined by this enumeration.
    • getMax

      public final int getMax()
      Returns the largest ordinal defined by this enumeration.
    • isValid

      public final boolean isValid(int ordinal)
      Returns whether ordinal is valid for this enumeration. This method is particularly useful in pre- and post-conditions, for example
      @param axisCode Axis code, must be a {@link AxisCode} value
       @pre AxisCode.instance.isValid(axisCode)
      Parameters:
      ordinal - Suspected ordinal from this enumeration.
      Returns:
      Whether ordinal is valid.
    • getValue

      public final V getValue(int ordinal)
      Returns the name associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration.
    • getName

      public final String getName(int ordinal)
      Returns the name associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration.
    • getDescription

      public final String getDescription(int ordinal)
      Returns the description associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration.
    • getOrdinal

      public final int getOrdinal(String name)
      Returns the ordinal associated with a name
      Throws:
      Error - if the name is not a member of the enumeration
    • getValue

      public V getValue(String name, boolean fail)
      Returns the value associated with a name.
      Parameters:
      name - Name of enumerated value
      fail - Whether to throw if not found
      Throws:
      Error - if the name is not a member of the enumeration and fail is true
    • getNames

      public String[] getNames()
      Returns the names in this enumeration, in declaration order.
    • getValuesSortedByName

      public List<V> getValuesSortedByName()
      Returns the members of this enumeration, sorted by name.
    • badValue

      public RuntimeException badValue(int ordinal)
      Returns an error indicating that the value is illegal. (The client needs to throw the error.)
    • unexpected

      public RuntimeException unexpected(V value)
      Returns an exception indicating that we didn't expect to find this value here.