in impl/src/main/java/org/apache/geronimo/config/ConfigImpl.java [313:333]
private Type getTypeOfConverter(Class clazz) {
if (clazz.equals(Object.class)) {
return null;
}
Type[] genericInterfaces = clazz.getGenericInterfaces();
for (Type genericInterface : genericInterfaces) {
if (genericInterface instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType) genericInterface;
if (pt.getRawType().equals(Converter.class)) {
Type[] typeArguments = pt.getActualTypeArguments();
if (typeArguments.length != 1) {
throw new IllegalStateException("Converter " + clazz + " must be a ParameterisedType");
}
return typeArguments[0];
}
}
}
return getTypeOfConverter(clazz.getSuperclass());
}