protected void readProperty(BeanContainer container, XmlReader reader, LoaderContext context, BeanDefinitionBase bean) {
if(!testIfAttributes(container, reader)) {
reader.nextToEndElement();
return;
}
PropertyDefinition prop = new PropertyDefinition();
prop.setName(reader.getRequiredAttribute(NAME_ATTRIBUTE));
prop.setDefaultValue(reader.getAttribute(DEFAULT_VALUE_ATTRIBUTE));
prop.setValueDefinition(readValue(container, reader, context, PROPERTY_ELEMENT));
prop.setProperty(bean.getBeanClassType().getProperty(prop.getName()));
if (null == prop.getProperty()) {
throw new BeanDefinitionException("property '" + prop.getName() + "' not found in bean class '" + bean.getBeanClass().getName() + ", source : " + reader.getSource());
}
if (null == prop.getValueDefinition()) {
throw new BeanDefinitionException("property '" + prop.getName() + "' must define a value, check source : " + bean.getSource());
}
bean.addProperty(prop);
}