Package org.apache.tapestry5.services
Interface TranslatorSource
- All Known Implementing Classes:
TranslatorSourceImpl
@UsesMappedConfiguration(key=java.lang.Class.class,
value=Translator.class)
public interface TranslatorSource
A source for
Translator
s, either by name or by property type. The source knows
about two sets of translators: the standard translators contributed directly to the service
and the alternate translators, contributed to the TranslatorAlternatesSource
service.
Each contributed translator must have a unique name.
Generally, Translators are matched by type (i.e., the type matching a particular property that will be read or
updated). Contributions to this service use a StrategyRegistry
to match by type. Translators can also be
selected by name. The TranslatorAlternatesSource
service configuration is often used for this purpose.
The contribution key must match the translator type.-
Method Summary
Modifier and TypeMethodDescriptionfindByType
(Class valueType) Finds aTranslator
that is appropriate to the given type, which is usually obtained viaBinding.getBindingType()
.Returns the translator with the given name (either a standard translator, or an alternate).Finds aTranslator
that is appropriate to the given type, which is usually obtained viaBinding.getBindingType()
.
-
Method Details
-
get
Returns the translator with the given name (either a standard translator, or an alternate).- Parameters:
name
- name of translator (as configured, but case is ignored)- Returns:
- the shared translator instance
- Throws:
RuntimeException
- if no translator is configured for the provided name
-
findByType
Finds aTranslator
that is appropriate to the given type, which is usually obtained viaBinding.getBindingType()
. Performs an inheritance-based search for the best match, among the standard translator (not alternates).- Parameters:
valueType
- the type of value for which a default translator is needed- Returns:
- the matching translator, or null if no match can be found
-
getByType
Finds aTranslator
that is appropriate to the given type, which is usually obtained viaBinding.getBindingType()
. Performs an inheritance-based search for the best match, among the standard translators (not alternates).- Parameters:
valueType
- the type of value for which a default translator is needed- Returns:
- the matching translator
- Throws:
IllegalArgumentException
- if no standard validator matches the provided type
-