Package org.apache.tapestry5

## Interface Translator<T>

- Type Parameters:
    `T` - the type being translated
  All Known Implementing Classes:
    `AbstractTranslator`, `NumericTranslator`, `StringTranslator`

      public interface Translator<T>

  Translates between client-side and server-side values. Client-side values are always strings.
  See Also:
    `TranslatorSource`, `FieldValidationSupport`, `FieldTranslator`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `getMessageKey()` | Returns the message key, within the application's global message catalog, normally used by this validator.
    `java.lang.String` | `getName()` | Returns a unique name for the translator.
    `java.lang.Class<T>` | `getType()` | Returns the type of the server-side value.
    `T` | `parseClient​(Field field, java.lang.String clientValue, java.lang.String message)` | Converts a submitted request value into an appropriate server side value.
    `void` | `render​(Field field, java.lang.String message, MarkupWriter writer, FormSupport formSupport)` | Hook used by components to allow the validator to contribute additional attributes or (more often) client-side JavaScript (via the `FormSupport.addValidation(Field, String, String, Object)`).
    `java.lang.String` | `toClient​(T value)` | Converts a server-side value to a client-side string.

- - ### Method Detail

    - #### getName

          java.lang.String getName()

      Returns a unique name for the translator. This is used to identify the translator by name, but is also used when locating override messages for the translator.
      Returns:
        unique name for the translator

    - #### toClient

          java.lang.String toClient​(T value)

      Converts a server-side value to a client-side string. This allows for formatting of the value in a way appropriate to the end user. The output client value should be parsable by `parseClient(Field, String, String)`.
      Parameters:
        `value` - the server side value (which will not be null)
      Returns:
        client-side value to present to the user

    - #### getType

          java.lang.Class<T> getType()

      Returns the type of the server-side value.
      Returns:
        a type

    - #### getMessageKey

          java.lang.String getMessageKey()

      Returns the message key, within the application's global message catalog, normally used by this validator. This is used to provide the formatted message to `parseClient(Field, String, String)` or `render(Field, String, MarkupWriter, org.apache.tapestry5.services.FormSupport)`.
      Returns:
        a message key

    - #### parseClient

          T parseClient​(Field field,
                        java.lang.String clientValue,
                        java.lang.String message)
                 throws ValidationException

      Converts a submitted request value into an appropriate server side value.
      Parameters:
        `field` - for which a value is being parsed
        `clientValue` - to convert to a server value; this will not be null, but may be blank
        `message` - formatted validation message, either from validation messages, or from an override
      Returns:
        equivalent server-side value (possibly null)
      Throws:
        `ValidationException` - if the value can not be parsed

    - #### render

          void render​(Field field,
                      java.lang.String message,
                      MarkupWriter writer,
                      FormSupport formSupport)

      Hook used by components to allow the validator to contribute additional attributes or (more often) client-side JavaScript (via the `FormSupport.addValidation(Field, String, String, Object)`).
      Parameters:
        `field` - the field which is currently being rendered
        `message` - formatted validation message, either from validation messages, or from an override
        `writer` - markup writer, allowing additional attributes to be written into the active element
        `formSupport` - used to add JavaScript