@ComponentSpecification public interface EnumProvider extends Iterable<EnumDefinition<?,?>>
enumerations. The major goal of this
component is generic support for enumerations of any kind. This may e.g. be used for user-interfaces in
radio-groups, drop-downs, combo-boxes, or the like. More advanced cases are implementations that
dynamically load the enum values from a file, database or a service.
Within mmm-util-core you will only find simple implementations of this interface. Dynamic
enumerations are provided by higher-level components of the project.| Modifier and Type | Method and Description |
|---|---|
void |
clear(EnumDefinition<?,?> enumDefinition)
This method clears the (potentially) cached
enum values of the
given EnumDefinition. |
<TYPE> EnumDefinition<TYPE,?> |
getEnumDefinition(Class<TYPE> enumType)
This method gets the
EnumDefinition with the given enumType. |
EnumDefinition<?,?> |
getEnumDefinition(String key)
This method gets the
EnumDefinition with the given key. |
Iterator<EnumDefinition<?,?>> |
getEnumDefinitions()
This method gets an (unmodifiable)
Iterator with all existing EnumDefinitions. |
<CATEGORY,ENUM extends EnumTypeWithCategory<?,CATEGORY>> |
getEnumDefinitionWithCategory(Class<? extends ENUM> enumType)
This method gets the
EnumDefinition with the given enumType. |
<ENUM> ENUM |
getEnumValue(Class<ENUM> enumType,
String value,
boolean required)
|
<ENUM> ENUM |
getEnumValue(EnumDefinition<ENUM,?> enumDefinition,
String value,
boolean required)
|
<ENUM> List<ENUM> |
getEnumValues(EnumDefinition<ENUM,?> enumDefinition)
This method gets the
List of EnumType-instances that represent the values of the given
EnumDefinition. |
<CATEGORY,ENUM extends EnumTypeWithCategory<?,CATEGORY>> |
getEnumValues(EnumDefinition<ENUM,CATEGORY> enumDefinition,
CATEGORY... categories)
|
boolean |
isAvailable(EnumDefinition<?,?> enumDefinition)
This method determines if the given
EnumDefinition is available, so it is ensured that the
enum values can be retrieved. |
Iterator<EnumDefinition<?,?>> |
iterator()
The same as
getEnumDefinitions(). |
void |
require(EnumDefinition<?,?>... enumDefinitions)
This method triggers that the given
EnumDefinitions are available. |
void |
require(Runnable callback,
EnumDefinition<?,?>... enumDefinitions)
This method triggers that the given
EnumDefinitions are available. |
forEach, spliteratorIterator<EnumDefinition<?,?>> iterator()
getEnumDefinitions().
iterator in interface Iterable<EnumDefinition<?,?>>Iterator<EnumDefinition<?,?>> getEnumDefinitions()
Iterator with all existing EnumDefinitions. In most
cases this is a static list, however it may also be dynamic.Iterator with all existing EnumDefinitions.iterator()EnumDefinition<?,?> getEnumDefinition(String key) throws ObjectNotFoundException
EnumDefinition with the given key. To get the default
EnumDefinition for a particular enum type you should use
getEnumDefinition(Class) instead. However, for the same enum type multiple
EnumDefinitions can exists. The default definition should have the qualified name of the enum type while additional definitions should
have more specific keys that do not clash with others (e.g. "java.lang.Boolean_All_None").key - is the key of the requested definition.EnumDefinition.ObjectNotFoundException - if no such EnumDefinition exists.<TYPE> EnumDefinition<TYPE,?> getEnumDefinition(Class<TYPE> enumType) throws ObjectNotFoundException
EnumDefinition with the given enumType.TYPE - is the generic for the enum type.enumType - is the enum type of the requested definition.EnumDefinition.ObjectNotFoundException - if no such EnumDefinition exists.<CATEGORY,ENUM extends EnumTypeWithCategory<?,CATEGORY>> EnumDefinition<ENUM,CATEGORY> getEnumDefinitionWithCategory(Class<? extends ENUM> enumType) throws ObjectNotFoundException
EnumDefinition with the given enumType.CATEGORY - is the generic for the category.ENUM - is the generic for the enum type.enumType - is the enum type of the requested definition.EnumDefinition.ObjectNotFoundException - if no such EnumDefinition exists.boolean isAvailable(EnumDefinition<?,?> enumDefinition)
EnumDefinition is available, so it is ensured that the
enum values can be retrieved.enumDefinition - is the EnumDefinition to check.true if the enum values for the given
EnumDefinition are available (already loaded / in cache), false otherwise.void require(EnumDefinition<?,?>... enumDefinitions)
EnumDefinitions are available.enumDefinitions - are the EnumDefinitions of the required enumerations.void require(Runnable callback, EnumDefinition<?,?>... enumDefinitions)
EnumDefinitions are available. In advanced to require(EnumDefinition...) it allows to specify a callback that gets
invoked after the required EnumDefinitions are available.
This is useful in asynchronous environments (e.g. in client applications that have to receive the values
(asynchronously) from the server).callback - is a Runnable that will be called after all given
EnumDefinitions are available.enumDefinitions - are the EnumDefinitions of the required enumerations.<ENUM> List<ENUM> getEnumValues(EnumDefinition<ENUM,?> enumDefinition)
List of EnumType-instances that represent the values of the given
EnumDefinition. In case the enum type implements
AttributeReadDeprecated the
deprecated enum values
will be excluded from the returned List.ENUM - is the generic for the enum type.enumDefinition - is the EnumDefinition for which the values are requested.List of EnumTypes.<ENUM> ENUM getEnumValue(EnumDefinition<ENUM,?> enumDefinition, String value, boolean required) throws IllegalCaseException
ENUM - is the generic for the enum type.enumDefinition - is the EnumDefinition for which the value is requested.value - is the string representation of the requested
EnumType instance based on EnumDefinition.getFormatter().required - - true if the requested EnumType-instance is required,
false otherwise.EnumType-instance. Will be null if value is
null or if required is false and no such EnumType
instance exists.IllegalCaseException - if required is true and no such EnumType
instance exists.<ENUM> ENUM getEnumValue(Class<ENUM> enumType, String value, boolean required) throws IllegalCaseException
ENUM - is the generic for the enum type.enumType - is the EnumType for which the value is requested.value - is the string representation of the requested
EnumType instance based on EnumDefinition.getFormatter().required - - true if the requested EnumType-instance is required,
false otherwise.EnumType-instance. Will be null if value is
null or if required is false and no such EnumType
instance exists.IllegalCaseException - if required is true and no such EnumType
instance exists.<CATEGORY,ENUM extends EnumTypeWithCategory<?,CATEGORY>> List<ENUM> getEnumValues(EnumDefinition<ENUM,CATEGORY> enumDefinition, CATEGORY... categories)
List of enum values filtered by the
given categories. So only these
enum values are returned that have a
categoryCATEGORY - is the generic type of the category
type.ENUM - is the generic for the enum type.enumDefinition - is the EnumDefinition for which the values are requested.categories - are the categories.List of matching EnumTypes.void clear(EnumDefinition<?,?> enumDefinition)
enum values of the
given EnumDefinition. If the enum is dynamic it is NOT
available (anymore) after this operation.enumDefinition - is the EnumDefinition to clear.Copyright © 2001–2015 mmm-Team. All rights reserved.