Package org.apache.tapestry5

## Interface FieldValidationSupport

- All Known Implementing Classes:
    `FieldValidationSupportImpl`

      public interface FieldValidationSupport

  Services to help with field validation and translation. This service encapsulates the logic that mixes normal configured/declared validation/translation with events triggered on the component.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Object` | `parseClient​(String clientValue, ComponentResources componentResources, FieldTranslator<Object> translator, NullFieldStrategy nullFieldStrategy)` | A wrapper around `Translator.parseClient(Field, String, String)`.
    `String` | `toClient​(Object value, ComponentResources componentResources, FieldTranslator<Object> translator, NullFieldStrategy nullFieldStrategy)` | A wrapper around `Translator.toClient(Object)` that first fires a "toclient" event on the component to see if it can perform the conversion.
    `void` | `validate​(Object value, ComponentResources componentResources, FieldValidator validator)` | Performs validation on a parsed value from the client.

- - ### Method Detail

    - #### toClient

          String toClient​(Object value,
                          ComponentResources componentResources,
                          FieldTranslator<Object> translator,
                          NullFieldStrategy nullFieldStrategy)

      A wrapper around `Translator.toClient(Object)` that first fires a "toclient" event on the component to see if it can perform the conversion. If the value is null, then no event is fired and the translator is not invoked, the return value is simply null.
      Parameters:
        `value` - to be converted to a client-side string, which may be null
        `componentResources` - used to fire events on the component
        `translator` - used if the component does not provide a non-null value
        `nullFieldStrategy` - used to convert a null server side value to an appropriate client side value
      Returns:
        the translated value or null if the value is null
      See Also:
        `Translator.toClient(Object)`

    - #### parseClient

          Object parseClient​(String clientValue,
                             ComponentResources componentResources,
                             FieldTranslator<Object> translator,
                             NullFieldStrategy nullFieldStrategy)
                      throws ValidationException

      A wrapper around `Translator.parseClient(Field, String, String)`. First a "parseclient" event is fired; the translator is only invoked if that returns null (typically because there is no event handler method for the event).
      Parameters:
        `clientValue` - the value provided by the client (not null)
        `componentResources` - used to trigger events
        `translator` - translator that will do the work if the component event returns null
        `nullFieldStrategy` - used to convert null/blank values from client into non-null server side values
      Returns:
        the input parsed to an object
      Throws:
        `ValidationException` - if the value can't be parsed
      See Also:
        `Translator.parseClient(Field, String, String)`

    - #### validate

          void validate​(Object value,
                        ComponentResources componentResources,
                        FieldValidator validator)
                 throws ValidationException

      Performs validation on a parsed value from the client. Normal validations occur first, then a "validate" event is triggered on the component.
      Parameters:
        `value` - parsed value from the client, possibly null
        `componentResources` - used to trigger events
        `validator` - performs normal validations
      Throws:
        `ValidationException` - if the value is not valid
      See Also:
        `Validator.validate(Field, Object, org.apache.tapestry5.ioc.MessageFormatter, Object)`