Package org.apache.tapestry5

## Interface FieldValidator<T>

- Type Parameters:
    `T` - the type of the values being validated
  All Known Implementing Classes:
    `BeanFieldValidator`, `CompositeFieldValidator`, `FieldValidatorImpl`

      public interface FieldValidator<T>

  Responsible for validation of a single field.
  See Also:
    `Validator`, `FieldValidatorDefaultSource`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isRequired()` | Returns true if any underlying `Validator` returns true from `Validator.isRequired()`.
    `void` | `render​(MarkupWriter writer)` | Invokes `Validator.render(Field, Object, org.apache.tapestry5.ioc.MessageFormatter, MarkupWriter, org.apache.tapestry5.services.FormSupport)`.
    `void` | `validate​(T value)` | Invoked after the client-submitted value has been `translated` to check that the value conforms to expectations (often, in terms of minimum or maximum value).

- - ### Method Detail

    - #### validate

          void validate​(T value)
                 throws ValidationException

      Invoked after the client-submitted value has been `translated` to check that the value conforms to expectations (often, in terms of minimum or maximum value). If and only if the value is approved by all Validators is the value applied by the field.
      Parameters:
        `value` - the translated value supplied by the user
      Throws:
        `ValidationException` - if the value violates the constraint

    - #### render

          void render​(MarkupWriter writer)

      Invokes `Validator.render(Field, Object, org.apache.tapestry5.ioc.MessageFormatter, MarkupWriter, org.apache.tapestry5.services.FormSupport)`. This is called at a point "inside" the tag, so that additional attributes may be added. In many cases, the underlying `Validator` may write client-side JavaScript to enforce the constraint as well.
      Parameters:
        `writer` - markup writer to direct output to.
      See Also:
        `MarkupWriter.attributes(Object[])`

    - #### isRequired

          boolean isRequired()

      Returns true if any underlying `Validator` returns true from `Validator.isRequired()`.
      Returns:
        true if the field is required (a non-blank value is expected)