public interface ChronoExtension
Defines a configuration-dependent extension of the chronological
elements of a Chronology used in formatting and parsing.
| Modifier and Type | Method and Description |
|---|---|
boolean |
accept(Class<?> chronoType)
Will be called by a
java.util.ServiceLoader in order to determine
if the given chronological type should register this extension or not. |
default boolean |
canResolve(ChronoElement<?> element)
Gives a hint to the parser if the element in question can be resolved by
resolve(). |
Set<ChronoElement<?>> |
getElements(Locale locale,
AttributeQuery attributes)
Returns the element set for given configuration.
|
ChronoEntity<?> |
resolve(ChronoEntity<?> entity,
Locale locale,
AttributeQuery attributes)
Updates the given value source if necessary in order to resolve
the values of extension elements to values of standard elements.
|
boolean accept(Class<?> chronoType)
Will be called by a java.util.ServiceLoader in order to determine
if the given chronological type should register this extension or not.
chronoType - chronological typetrue if given type should register this extension else falseSet<ChronoElement<?>> getElements(Locale locale, AttributeQuery attributes)
Returns the element set for given configuration.
An empty Set indicates that this extension is not relevant
for the given configuration.
locale - language and country settingattributes - global configuration attributes of formatterChronoEntity<?> resolve(ChronoEntity<?> entity, Locale locale, AttributeQuery attributes)
Updates the given value source if necessary in order to resolve the values of extension elements to values of standard elements.
Implementations are allowed to use null as pseudo-value
in order to delete an element from given source via the expression
entity.with(element, null). Note: The argument has
exceptionally no chronology.
entity - any kind of map from chronological elements to
their values (note that the main use case of parsed
data has no chronology and allows the virtual value
null to be set as indication for removing
associated element)locale - language and country settingattributes - global configuration attributes of parserIllegalArgumentException - if resolving fails due to inconsistenciesChronoEntity.with(ChronoElement, V)default boolean canResolve(ChronoElement<?> element)
Gives a hint to the parser if the element in question can be resolved by resolve().
This method serves for optimization purpose and helps the parser to decide if chronological extensions are needed at all during parsing. Subclasses should override this method in most cases.
element - the element to be checkedtrue if this extension can resolve given element else falseresolve(ChronoEntity, Locale, AttributeQuery)Copyright © 2014–2021. All rights reserved.