|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object mondrian.olap.EnumeratedValues<V>
public class EnumeratedValues<V extends EnumeratedValues.Value>
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 | |
---|---|
static class |
EnumeratedValues.BasicValue
BasicValue is an obvious implementation of EnumeratedValues.Value . |
static interface |
EnumeratedValues.Value
A Value represents a member of an enumerated type. |
Constructor Summary | |
---|---|
EnumeratedValues()
Creates 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 | |
---|---|
RuntimeException |
badValue(int ordinal)
Returns an error indicating that the value is illegal. |
EnumeratedValues<V> |
clone()
|
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. |
int |
getMax()
Returns the largest ordinal defined by this enumeration. |
int |
getMin()
Returns the smallest ordinal defined by this enumeration. |
EnumeratedValues |
getMutableClone()
Creates a mutable enumeration from an existing enumeration, which may already be immutable. |
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. |
String[] |
getNames()
Returns the names in this enumeration, in declaration order. |
int |
getOrdinal(String name)
Returns the ordinal associated with a name |
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. |
V |
getValue(String name,
boolean fail)
Returns the value associated with a name. |
List<V> |
getValuesSortedByName()
Returns the members of this enumeration, sorted by name. |
boolean |
isImmutable()
|
boolean |
isValid(int ordinal)
Returns whether ordinal is valid for this enumeration. |
void |
makeImmutable()
Freezes the enumeration, preventing it from being further modified. |
void |
register(V value)
Associates a symbolic name with an ordinal value. |
RuntimeException |
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 Detail |
---|
public EnumeratedValues()
public EnumeratedValues(V[] values)
public EnumeratedValues(String[] names)
public EnumeratedValues(String[] names, int[] codes)
public EnumeratedValues(String[] names, int[] codes, String[] descriptions)
public EnumeratedValues(Class<? extends Enum> clazz)
Method Detail |
---|
public EnumeratedValues<V> clone()
clone
in class Object
public EnumeratedValues getMutableClone()
public void register(V value)
public void makeImmutable()
public final boolean isImmutable()
public final int getMin()
public final int getMax()
public final boolean isValid(int ordinal)
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)
ordinal
- Suspected ordinal from this enumeration.
ordinal
is valid.public final V getValue(int ordinal)
public final String getName(int ordinal)
public final String getDescription(int ordinal)
public final int getOrdinal(String name)
Error
- if the name is not a member of the enumerationpublic V getValue(String name, boolean fail)
Error
- if the name is not a member of the enumeration and
fail
is truename
- Name of enumerated valuefail
- Whether to throw if not foundpublic String[] getNames()
public List<V> getValuesSortedByName()
public RuntimeException badValue(int ordinal)
public RuntimeException unexpected(V value)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |