/** * Constructor for setting the immutable descriptor, property set and * property holder type used by this instance. * * @param propertySet * property set this property belongs to * @param parent * parent property for this nested property * @param descriptor * property descriptor */ public AbstractBeanPropertyDefinition(BeanPropertySet<T> propertySet, Class<?> propertyHolderType, PropertyDescriptor descriptor) { this.propertySet = propertySet; this.propertyHolderType = propertyHolderType; this.descriptor = descriptor; if (descriptor.getReadMethod() == null) { throw new IllegalArgumentException( "Bean property has no accessible getter: " + propertySet.getBeanType() + "." + descriptor.getName()); } }