@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 EnumDefinition s. |
<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
EnumDefinition s are available . |
void |
require(Runnable callback,
EnumDefinition<?,?>... enumDefinitions)
This method triggers that the given
EnumDefinition s are available . |
forEach, spliterator
Iterator<EnumDefinition<?,?>> iterator()
getEnumDefinitions()
.
iterator
in interface Iterable<EnumDefinition<?,?>>
Iterator<EnumDefinition<?,?>> getEnumDefinitions()
Iterator
with all existing EnumDefinition
s. In most cases this
is a static list, however it may also be dynamic.Iterator
with all existing EnumDefinition
s.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 EnumDefinition
s 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)
EnumDefinition
s are available
.enumDefinitions
- are the EnumDefinition
s of the required enumerations.void require(Runnable callback, EnumDefinition<?,?>... enumDefinitions)
EnumDefinition
s are available
. In
advanced to require(EnumDefinition...)
it allows to specify a callback that gets invoked after the
required EnumDefinition
s 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
EnumDefinition
s are available
.enumDefinitions
- are the EnumDefinition
s 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 EnumType
s.<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 category
CATEGORY
- 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 EnumType
s.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–2016 mmm-Team. All rights reserved.