Package org.springframework.format

# Interface AnnotationFormatterFactory<A extends Annotation>

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

All Known Implementing Classes:
  `DateTimeFormatAnnotationFormatterFactory`, `DurationFormatAnnotationFormatterFactory`, `Jsr310DateTimeFormatAnnotationFormatterFactory`, `Jsr354NumberFormatAnnotationFormatterFactory`, `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

Modifier and Type
Method
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 Details

### 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 coercion 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 coercion 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