throw new IllegalArgumentException("No such property " + cmpFieldName + " defined on bean class " + beanClassName);
}
// if this is an abstract method, then it's one we have to generate
if (Modifier.isAbstract(getter.getModifiers())) {
final Type type = Type.getType(getter.getReturnType());
final CmpField cmpField = new CmpField(cmpFieldName, type, getter);
this.cmpFields.put(cmpFieldName, cmpField);
} else {
// the getter is non-abstract. We only allow this if the class that
// defines the getter also has a private field with a matching type.