## org.springframework.core.convert.support
Class GenericConversionService

    java.lang.Object
      org.springframework.core.convert.support.GenericConversionService

All Implemented Interfaces:
  ConversionService, ConverterRegistry

Direct Known Subclasses:
  FormattingConversionService

    public class GenericConversionService

extends Object
implements ConversionService, ConverterRegistry

Base `ConversionService` implementation suitable for use in most environments. Implements `ConverterRegistry` as registration API.

Since:
  3.0
Author:
  Keith Donald, Juergen Hoeller

Constructor Summary
`GenericConversionService()`

Method Summary
`void` `addConverter(Converter<?,?> converter)` Add a plain converter to this registry.
`void` `addConverter(GenericConverter converter)` Add a generic converter to this registry.
`void` `addConverterFactory(ConverterFactory<?,?> converterFactory)` Add a ranged converter factory to this registry.
`boolean` `canConvert(Class<?> sourceType, Class<?> targetType)` Returns true if objects of sourceType can be converted to targetType.
`boolean` `canConvert(TypeDescriptor sourceType, TypeDescriptor targetType)` Returns true if objects of sourceType can be converted to the targetType.

`

`<T> T`

`

`convert(Object source, Class<T> targetType)`
Convert the source to targetType.

`Object` `convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType)` Convert the source to targetType.
`protected Object` `convertNullSource(TypeDescriptor sourceType, TypeDescriptor targetType)` Template method to convert a null source.
`protected GenericConverter` `getConverter(TypeDescriptor sourceType, TypeDescriptor targetType)` Hook method to lookup the converter for a given sourceType/targetType pair.
`protected GenericConverter` `getDefaultConverter(TypeDescriptor sourceType, TypeDescriptor targetType)` Return the default converter if no converter is found for the given sourceType/targetType pair.
`void` `removeConvertible(Class<?> sourceType, Class<?> targetType)` Remove any converters from sourceType to targetType.
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### GenericConversionService

    public GenericConversionService()

Method Detail

### addConverter

    public void addConverter(Converter<?,?> converter)

  Description copied from interface: `ConverterRegistry`
  Add a plain converter to this registry.

  Specified by:
    `addConverter` in interface `ConverterRegistry`

### addConverterFactory

    public void addConverterFactory(ConverterFactory<?,?> converterFactory)

  Description copied from interface: `ConverterRegistry`
  Add a ranged converter factory to this registry.

  Specified by:
    `addConverterFactory` in interface `ConverterRegistry`

### addConverter

    public void addConverter(GenericConverter converter)

  Description copied from interface: `ConverterRegistry`
  Add a generic converter to this registry.

  Specified by:
    `addConverter` in interface `ConverterRegistry`

### removeConvertible

    public void removeConvertible(Class<?> sourceType,
                                  Class<?> targetType)

  Description copied from interface: `ConverterRegistry`
  Remove any converters from sourceType to targetType.

  Specified by:
    `removeConvertible` in interface `ConverterRegistry`
  Parameters:
    `sourceType` - the source type
    `targetType` - the target type

### canConvert

    public boolean canConvert(Class<?> sourceType,
                              Class<?> targetType)

  Description copied from interface: `ConversionService`
  Returns true if objects of sourceType can be converted to targetType.

  Specified by:
    `canConvert` in interface `ConversionService`
  Parameters:
    `sourceType` - the source type to convert from (required)
    `targetType` - the target type to convert to (required)
  Returns:
    true if a conversion can be performed, false if not

### convert

    public <T> T convert(Object source,
                         Class<T> targetType)

  Description copied from interface: `ConversionService`
  Convert the source to targetType.

  Specified by:
    `convert` in interface `ConversionService`
  Parameters:
    `source` - the source object to convert (may be null)
    `targetType` - the target type to convert to (required)
  Returns:
    the converted object, an instance of targetType

### canConvert

    public boolean canConvert(TypeDescriptor sourceType,
                              TypeDescriptor targetType)

  Description copied from interface: `ConversionService`
  Returns true if objects of sourceType can be converted to the targetType. The TypeDescriptors provide additional context about the field locations where conversion would occur, often object property locations. This flavor of the canConvert operation exists mainly for use by a general purpose data mapping framework, and not for use by user code.

  Specified by:
    `canConvert` in interface `ConversionService`
  Parameters:
    `sourceType` - context about the source type to convert from (required)
    `targetType` - context about the target type to convert to (required)
  Returns:
    true if a conversion can be performed between the source and target types, false if not

### convert

    public Object convert(Object source,
                          TypeDescriptor sourceType,
                          TypeDescriptor targetType)

  Description copied from interface: `ConversionService`
  Convert the source to targetType. The TypeDescriptors provide additional context about the field locations where conversion will occur, often object property locations. This flavor of the convert operation exists mainly for use by a general purpose data mapping framework, and not for use by user code.

  Specified by:
    `convert` in interface `ConversionService`
  Parameters:
    `source` - the source object to convert (may be null)
    `sourceType` - context about the source type converting from (required)
    `targetType` - context about the target type to convert to (required)
  Returns:
    the converted object, an instance of `targetType`

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### convertNullSource

    protected Object convertNullSource(TypeDescriptor sourceType,
                                       TypeDescriptor targetType)

  Template method to convert a null source.

  Default implementation returns `null`. Throws a `ConversionFailedException` if the targetType is a primitive type, as `null` cannot be assigned to a primitive type. Subclasses may override to return custom null objects for specific target types.

  Parameters:
    `sourceType` - the sourceType to convert from
    `targetType` - the targetType to convert to
  Returns:
    the converted null object

### getConverter

    protected GenericConverter getConverter(TypeDescriptor sourceType,
                                            TypeDescriptor targetType)

  Hook method to lookup the converter for a given sourceType/targetType pair.

  First queries this ConversionService's converter cache. On a cache miss, then performs an exhaustive search for a matching converter. If no converter matches, returns the default converter. Subclasses may override.

  Parameters:
    `sourceType` - the source type to convert from
    `targetType` - the target type to convert to
  Returns:
    the generic converter that will perform the conversion, or `null` if no suitable converter was found
  See Also:
    `getDefaultConverter(TypeDescriptor, TypeDescriptor)`

### getDefaultConverter

    protected GenericConverter getDefaultConverter(TypeDescriptor sourceType,
                                                   TypeDescriptor targetType)

  Return the default converter if no converter is found for the given sourceType/targetType pair. Returns a NO_OP Converter if the sourceType is assignable to the targetType. Returns `null` otherwise, indicating no suitable converter could be found. Subclasses may override.

  Parameters:
    `sourceType` - the source type to convert from
    `targetType` - the target type to convert to
  Returns:
    the default generic converter that will perform the conversion