## org.springframework.format
Interface AnnotationFormatterFactory<A extends Annotation>

Type Parameters:
  `A` - the annotation type that should trigger formatting

All Known Implementing Classes:
  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
`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