org.springframework.format.support

## Class FormattingConversionService

- java.lang.Object
- - org.springframework.core.convert.support.GenericConversionService
  - - org.springframework.format.support.FormattingConversionService

- All Implemented Interfaces:
    Aware, EmbeddedValueResolverAware, ConversionService, ConverterRegistry, ConfigurableConversionService, FormatterRegistry
  Direct Known Subclasses:
    DefaultFormattingConversionService

      public class FormattingConversionService
      extends GenericConversionService
      implements FormatterRegistry, EmbeddedValueResolverAware

  A `ConversionService` implementation designed to be configured as a `FormatterRegistry`.
  Since:
    3.0
  Author:
    Keith Donald, Juergen Hoeller

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FormattingConversionService()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addFormatter(Formatter<?> formatter)` Adds a Formatter to format fields of a specific type.
    `void` | `addFormatterForFieldAnnotation(AnnotationFormatterFactory annotationFormatterFactory)` Adds a Formatter to format fields annotated with a specific format annotation.
    `void` | `addFormatterForFieldType(Class<?> fieldType, Formatter<?> formatter)` Adds a Formatter to format fields of the given type.
    `void` | `addFormatterForFieldType(Class<?> fieldType, Printer<?> printer, Parser<?> parser)` Adds a Printer/Parser pair to format fields of a specific type.
    `void` | `setEmbeddedValueResolver(StringValueResolver resolver)` Set the StringValueResolver to use for resolving embedded definition values.

    - ### Methods inherited from class org.springframework.core.convert.support.GenericConversionService

      `addConverter, addConverter, addConverter, addConverterFactory, canBypassConvert, canConvert, canConvert, convert, convert, convert, convertNullSource, getConverter, getDefaultConverter, removeConvertible, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.springframework.core.convert.converter.ConverterRegistry

      `addConverter, addConverter, addConverter, addConverterFactory, removeConvertible`

- - ### Constructor Detail

    - #### FormattingConversionService

          public FormattingConversionService()

  - ### Method Detail

    - #### setEmbeddedValueResolver

          public void setEmbeddedValueResolver(StringValueResolver resolver)

      Description copied from interface: `EmbeddedValueResolverAware`
      Set the StringValueResolver to use for resolving embedded definition values.
      Specified by:
        `setEmbeddedValueResolver` in interface `EmbeddedValueResolverAware`

    - #### addFormatter

          public void addFormatter(Formatter<?> formatter)

      Description copied from interface: `FormatterRegistry`
      Adds a Formatter to format fields of a specific type. The field type is implied by the parameterized Formatter instance.
      Specified by:
        `addFormatter` in interface `FormatterRegistry`
      Parameters:
        `formatter` - the formatter to add
      See Also:
        `FormatterRegistry.addFormatterForFieldType(Class, Formatter)`

    - #### addFormatterForFieldType

          public void addFormatterForFieldType(Class<?> fieldType,
                                      Formatter<?> formatter)

      Description copied from interface: `FormatterRegistry`
      Adds a Formatter to format fields of the given type.

      On print, if the Formatter's type T is declared and `fieldType` is not assignable to T, a coersion to T will be attempted before delegating to `formatter` to print a field value. On parse, if the parsed object returned by `formatter` is not assignable to the runtime field type, a coersion to the field type will be attempted before returning the parsed field value.

      Specified by:
        `addFormatterForFieldType` in interface `FormatterRegistry`
      Parameters:
        `fieldType` - the field type to format
        `formatter` - the formatter to add

    - #### addFormatterForFieldType

          public void addFormatterForFieldType(Class<?> fieldType,
                                      Printer<?> printer,
                                      Parser<?> parser)

      Description copied from interface: `FormatterRegistry`
      Adds a Printer/Parser pair to format fields of a specific type. The formatter will delegate to the specified `printer` for printing and the specified `parser` for parsing.

      On print, if the Printer's type T is declared and `fieldType` is not assignable to T, a coersion to T will be attempted before delegating to `printer` to print a field value. On parse, if the object returned by the Parser is not assignable to the runtime field type, a coersion to the field type will be attempted before returning the parsed field value.

      Specified by:
        `addFormatterForFieldType` in interface `FormatterRegistry`
      Parameters:
        `fieldType` - the field type to format
        `printer` - the printing part of the formatter
        `parser` - the parsing part of the formatter

    - #### addFormatterForFieldAnnotation

          public void addFormatterForFieldAnnotation(AnnotationFormatterFactory annotationFormatterFactory)

      Description copied from interface: `FormatterRegistry`
      Adds a Formatter to format fields annotated with a specific format annotation.
      Specified by:
        `addFormatterForFieldAnnotation` in interface `FormatterRegistry`
      Parameters:
        `annotationFormatterFactory` - the annotation formatter factory to add