Package mondrian.olap
Class EnumeratedValues<V extends EnumeratedValues.Value>
java.lang.Object
mondrian.olap.EnumeratedValues<V>
- All Implemented Interfaces:
Cloneable
- Direct Known Subclasses:
Category
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 ClassesModifier and TypeClassDescriptionstatic classBasicValueis an obvious implementation ofEnumeratedValues.Value.static interfaceAValuerepresents a member of an enumerated type. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new empty, mutable enumeration.EnumeratedValues(Class<? extends Enum> clazz) EnumeratedValues(String[] names) 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 TypeMethodDescriptionbadValue(int ordinal) Returns an error indicating that the value is illegal.clone()final StringgetDescription(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 intgetMax()Returns the largest ordinal defined by this enumeration.final intgetMin()Returns the smallest ordinal defined by this enumeration.Creates a mutable enumeration from an existing enumeration, which may already be immutable.final StringgetName(int ordinal) Returns the name associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration.String[]getNames()Returns the names in this enumeration, in declaration order.final intgetOrdinal(String name) Returns the ordinal associated with a namefinal VgetValue(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 value associated with a name.Returns the members of this enumeration, sorted by name.final booleanfinal booleanisValid(int ordinal) Returns whetherordinalis valid for this enumeration.voidFreezes the enumeration, preventing it from being further modified.voidAssociates a symbolic name with an ordinal value.unexpected(V value) Returns an exception indicating that we didn't expect to find this value here.
-
Constructor Details
-
EnumeratedValues
public EnumeratedValues()Creates a new empty, mutable enumeration. -
EnumeratedValues
Creates an enumeration, with an array of values, and freezes it. -
EnumeratedValues
Creates an enumeration, initialize it with an array of strings, and freezes it. -
EnumeratedValues
Create an enumeration, initializes it with arrays of code/name pairs, and freezes it. -
EnumeratedValues
Create an enumeration, initializes it with arrays of code/name pairs, and freezes it. -
EnumeratedValues
-
-
Method Details
-
clone
-
getMutableClone
Creates a mutable enumeration from an existing enumeration, which may already be immutable. -
register
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 whetherordinalis 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
ordinalis valid.
-
getValue
Returns the name associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration. -
getName
Returns the name associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration. -
getDescription
Returns the description associated with an ordinal; the return value is null if the ordinal is not a member of the enumeration. -
getOrdinal
Returns the ordinal associated with a name- Throws:
Error- if the name is not a member of the enumeration
-
getValue
Returns the value associated with a name.- Parameters:
name- Name of enumerated valuefail- Whether to throw if not found- Throws:
Error- if the name is not a member of the enumeration andfailis true
-
getNames
Returns the names in this enumeration, in declaration order. -
getValuesSortedByName
Returns the members of this enumeration, sorted by name. -
badValue
Returns an error indicating that the value is illegal. (The client needs to throw the error.) -
unexpected
Returns an exception indicating that we didn't expect to find this value here.
-