org.springframework.format

## Interface AnnotationFormatterFactory<A extends Annotation>

- Type Parameters:
    `A` - the annotation type that should trigger formatting
  All Known Implementing Classes:
    DateTimeFormatAnnotationFormatterFactory, JodaDateTimeFormatAnnotationFormatterFactory, NumberFormatAnnotationFormatterFactory

      public interface AnnotationFormatterFactory<A extends Annotation>

  A factory that creates formatters to format values of fields annotated with a particular `Annotation`.

  For example, a `DateTimeFormatAnnotationFormatterFactory` might create a formatter that formats `Date` values set on fields annotated with `@DateTimeFormat`.

  Since:
    3.0
  Author:
    Keith Donald

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Set<Class<?>>` | `getFieldTypes()` The types of fields that may be annotated with the <A> annotation.
    `Parser<?>` | `getParser(A annotation, Class<?> fieldType)` Get the Parser to parse a submitted value for a field of `fieldType` annotated with `annotation`.
    `Printer<?>` | `getPrinter(A annotation, Class<?> fieldType)` Get the Printer to print the value of a field of `fieldType` annotated with `annotation`.

- - ### Method Detail

    - #### getFieldTypes

          Set<Class<?>> getFieldTypes()

      The types of fields that may be annotated with the <A> annotation.

    - #### getPrinter

          Printer<?> getPrinter(A annotation,
                              Class<?> fieldType)

      Get the Printer to print the value of a field of `fieldType` annotated with `annotation`. If the type <T> the printer accepts is not assignable to `fieldType`, a coersion from `fieldType` to <T> will be attempted before the Printer is invoked.
      Parameters:
        `annotation` - the annotation instance
        `fieldType` - the type of field that was annotated
      Returns:
        the printer

    - #### getParser

          Parser<?> getParser(A annotation,
                            Class<?> fieldType)

      Get the Parser to parse a submitted value for a field of `fieldType` annotated with `annotation`. If the object the parser returns is not assignable to `fieldType`, a coersion to `fieldType` will be attempted before the field is set.
      Parameters:
        `annotation` - the annotation instance
        `fieldType` - the type of field that was annotated
      Returns:
        the parser