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 Type
  Method
  Description
  `Translator`
  `findByType(Class valueType)`
  Finds a `Translator` that is appropriate to the given type, which is usually obtained via `Binding.getBindingType()`.
  `Translator`
  `get(String name)`
  Returns the translator with the given name (either a standard translator, or an alternate).
  `Translator`
  `getByType(Class valueType)`
  Finds a `Translator` that is appropriate to the given type, which is usually obtained via `Binding.getBindingType()`.

- ## Method Details

  - ### get

    Translator get(String name)
    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

    Translator findByType(Class valueType)
    Finds a `Translator` that is appropriate to the given type, which is usually obtained via `Binding.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

    Translator getByType(Class valueType)
    Finds a `Translator` that is appropriate to the given type, which is usually obtained via `Binding.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