org.springframework.binding.convert.service
Class GenericConversionService

java.lang.Object
  extended by 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 Summary
GenericConversionService()
           
 
Method Summary
 void addAlias(String alias, Class targetType)
          Add an alias for given target type.
 void addConverter(Converter converter)
          Add given converter to this conversion service.
 void addConverter(String id, Converter converter)
          Add given custom converter to this conversion service.
 Object executeConversion(Object source, Class targetClass)
          Execute a conversion of the source object provided to the specified targetClass
 Object executeConversion(String converterId, Object source, Class targetClass)
          Execute a conversion using the custom converter with the provided id.
 Class getClassForAlias(String name)
          Lookup a class by its well-known alias.
 ConversionExecutor getConversionExecutor(Class sourceClass, Class targetClass)
          Return the default conversion executor capable of converting source objects of the specified sourceClass to instances of the targetClass.
 ConversionExecutor getConversionExecutor(String id, Class sourceClass, Class targetClass)
          Return the custom conversion executor capable of converting source objects of the specified sourceClass to instances of the targetClass.
 Set getConversionExecutors(Class sourceClass)
          Return all conversion executors capable of converting from the provided sourceClass.
 ConversionService getParent()
          Returns the parent of this conversion service.
 void setParent(ConversionService parent)
          Set the parent of this conversion service.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GenericConversionService

public GenericConversionService()
Method Detail

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.


addConverter

public void addConverter(Converter converter)
Add given converter to this conversion service.

Parameters:
converter - the converter

addConverter

public void addConverter(String id,
                         Converter converter)
Add given custom converter to this conversion service.

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

getConversionExecutors

public Set getConversionExecutors(Class sourceClass)
Description copied from interface: ConversionService
Return all conversion executors capable of converting from the provided sourceClass. For example, getConversionExecutor(String.class) would return all converters that convert from String to some other Object. Mainly useful for adapting a set of converters to some other environment.

Specified by:
getConversionExecutors in interface ConversionService
Parameters:
sourceClass - the source class converting from
Returns:
the conversion executors that can convert from that source class