{
for (int i = 0, len = interfaces.length; i < len; i++)
{
// search all superinterfaces for a matching converter,
// create it
final Converter converter = internalCreateConverter(interfaces[i]);
if (converter != null)
{
return converter;
}
}
}
}
// Get EnumConverter for enum classes with no special converter, check
// here as recursive call with java.lang.Enum will not work
if (converterClassName == null && targetClass.isEnum()) {
converterClassName = _converterClassNameToClassMap.get(Enum.class);
}
if (converterClassName != null)
{
try
{
Class<? extends Converter> converterClass = ClassUtils.simpleClassForName(converterClassName);
Converter converter = null;
// check cached constructor information
if (!_noArgConstructorConverterClasses.contains(converterClass))
{
// the converter class either supports the one-arg constructor