Implementations are provided with a conversion context, and an object, to execute conversion to the target type.
Implementations of this interface should have a public no-arg constructor.
The DataConverter classes are stateless, meaning, if they are called with the same arguments they will return the same results. They may be cached to avoid construction of multiple objects.
Implementations are required to either correctly convert the object to the target type, or throw a ConversionFailedException.
The caller may or may not do any type checking to ensure that the returned value is actually an instance of the target type. Clients should always ensure and test for their correct implementation.
When implementations of this method delegate conversion of generic elements, they should call