Package org.apache.velocity.util.introspection

# Interface TypeConversionHandler

All Known Implementing Classes:
  `TypeConversionHandlerImpl`

public interface TypeConversionHandler
A conversion handler adds admissible conversions between Java types whenever Velocity introspection has to map VTL methods and property accessors to Java methods. Both methods must be consistent: `getNeededConverter` must not return `null` whenever `isExplicitlyConvertible` returned true with the same arguments.

Since:
  2.1
Version:
  $Id: ConversionHandler.java $
Author:
  Claude Brisson

## Method Summary

Modifier and Type
Method
Description
`void`
`addConverter(Type formal, Class<?> actual, Converter<?> converter)`
Add the given converter to the handler.
`Converter<?>`
`getNeededConverter(Type formal, Class<?> actual)`
Returns the appropriate Converter object needed for an explicit conversion Returns null if no conversion is needed.
`boolean`
`isExplicitlyConvertible(Type formal, Class<?> actual, boolean possibleVarArg)`
Check to see if the conversion can be done using an explicit conversion

## Method Details

### isExplicitlyConvertible

boolean isExplicitlyConvertible(Type formal, Class<?> actual, boolean possibleVarArg)
Check to see if the conversion can be done using an explicit conversion

Parameters:
  `formal` - expected formal type
  `actual` - provided argument type
  `possibleVarArg` - whether var arg is possible
Returns:
  null if no conversion is needed, or the appropriate Converter object
Since:
  2.1

### getNeededConverter

Converter<?> getNeededConverter(Type formal, Class<?> actual)
Returns the appropriate Converter object needed for an explicit conversion Returns null if no conversion is needed.

Parameters:
  `formal` - expected formal type
  `actual` - provided argument type
Returns:
  null if no conversion is needed, or the appropriate Converter object
Since:
  2.1

### addConverter

void addConverter(Type formal, Class<?> actual, Converter<?> converter)
Add the given converter to the handler. Implementation should be thread-safe.

Parameters:
  `formal` - expected formal type
  `actual` - provided argument type
  `converter` - converter
Since:
  2.1