Class GenericConversionService

java.lang.Object
org.springframework.binding.convert.service.GenericConversionService
All Implemented Interfaces:
ConversionService
Direct Known Subclasses:
DefaultConversionService

public class GenericConversionService extends Object implements ConversionService
Base implementation of a conversion service. Initially empty, e.g. no converters are registered by default.
Author:
Keith Donald
  • Constructor Details

    • GenericConversionService

      public GenericConversionService()
      Default constructor.
    • GenericConversionService

      public GenericConversionService(org.springframework.core.convert.ConversionService delegateConversionService)
      Constructor accepting a specific instance of a Spring ConversionService to delegate to.
      Parameters:
      delegateConversionService - the conversion service
  • Method Details

    • getParent

      public ConversionService getParent()
      Returns the parent of this conversion service. Could be null.
    • setParent

      public void setParent(ConversionService parent)
      Set the parent of this conversion service. This is optional.
    • getDelegateConversionService

      public org.springframework.core.convert.ConversionService getDelegateConversionService()
      Description copied from interface: ConversionService
      Return the underlying Spring ConversionService.
      Specified by:
      getDelegateConversionService in interface ConversionService
      Returns:
      the Spring ConverterRegistry
    • addConverter

      public void addConverter(Converter converter)
      Registers the given converter with the underlying Spring ConversionService with the help of an adapter. The adapter allows an existing Spring Binding converter to be invoked within Spring's type conversion system.
      Parameters:
      converter - the converter
      See Also:
    • addConverter

      public void addConverter(String id, Converter converter)
      Add given custom converter to this conversion service. Note: Converters registered through this method will not be involve the Spring type conversion system, which is now used the default type conversion mechanism. Spring's type conversion does not support named converters. This method is provided for backwards compatibility.
      Parameters:
      id - the id of the custom converter instance
      converter - the converter
    • addAlias

      public void addAlias(String alias, Class<?> targetType)
      Add an alias for given target type.
    • getConversionExecutor

      public ConversionExecutor getConversionExecutor(Class<?> sourceClass, Class<?> targetClass) throws ConversionExecutorNotFoundException
      Description copied from interface: ConversionService
      Return the default conversion executor capable of converting source objects of the specified sourceClass to instances of the targetClass.

      The returned ConversionExecutor is thread-safe and may safely be cached for use in client code.

      Specified by:
      getConversionExecutor in interface ConversionService
      Parameters:
      sourceClass - the source class to convert from (required)
      targetClass - the target class to convert to (required)
      Returns:
      the executor that can execute instance type conversion, never null
      Throws:
      ConversionExecutorNotFoundException - when no suitable conversion executor could be found
    • getConversionExecutor

      public ConversionExecutor getConversionExecutor(String id, Class<?> sourceClass, Class<?> targetClass) throws ConversionExecutorNotFoundException
      Description copied from interface: ConversionService
      Return the custom conversion executor capable of converting source objects of the specified sourceClass to instances of the targetClass.

      The returned ConversionExecutor is thread-safe and may safely be cached for use in client code.

      Specified by:
      getConversionExecutor in interface ConversionService
      Parameters:
      id - the id of the custom conversion executor (required)
      sourceClass - the source class to convert from (required)
      targetClass - the target class to convert to (required)
      Returns:
      the executor that can execute instance type conversion, never null
      Throws:
      ConversionExecutorNotFoundException - when no suitable conversion executor could be found
    • executeConversion

      public Object executeConversion(Object source, Class<?> targetClass) throws ConversionException
      Description copied from interface: ConversionService
      Execute a conversion of the source object provided to the specified targetClass
      Specified by:
      executeConversion in interface ConversionService
      Parameters:
      source - the source to convert from (may be null)
      targetClass - the target class to convert to
      Returns:
      the converted object, an instance of the targetClass
      Throws:
      ConversionException - if an exception occurred during the conversion process
    • executeConversion

      public Object executeConversion(String converterId, Object source, Class<?> targetClass) throws ConversionException
      Description copied from interface: ConversionService
      Execute a conversion using the custom converter with the provided id.
      Specified by:
      executeConversion in interface ConversionService
      Parameters:
      converterId - the id of the custom converter, which must be registered with this conversion service and capable of converting to the target class
      source - the source to convert from (may be null)
      targetClass - the target class to convert to
      Returns:
      the converted object, an instance of the targetClass
      Throws:
      ConversionException - if an exception occurred during the conversion process
    • getClassForAlias

      public Class<?> getClassForAlias(String name) throws IllegalArgumentException
      Description copied from interface: ConversionService
      Lookup a class by its well-known alias. For example, long for java.lang.Long
      Specified by:
      getClassForAlias in interface ConversionService
      Parameters:
      name - the class alias
      Returns:
      the class, or null if no alias exists
      Throws:
      IllegalArgumentException