targetClass = convertToWrapperClassIfNecessary(targetClass);
if (targetClass.isAssignableFrom(sourceClass)) {
return new StaticConversionExecutor(sourceClass, targetClass, new NoOpConverter(sourceClass, targetClass));
}
if (delegate.canConvert(sourceClass, targetClass)) {
return new StaticConversionExecutor(sourceClass, targetClass, new SpringConvertingConverterAdapter(
sourceClass, targetClass, delegate));
} else if (parent != null) {
return parent.getConversionExecutor(sourceClass, targetClass);
} else {
throw new ConversionExecutorNotFoundException(sourceClass, targetClass,