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
`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