protected void processBeanList(BeanContainer container, XmlReader reader, LoaderContext context) {
Object source = reader.getSource();
Class<?> beanType = classAttribute(reader, TYPE_ATTRIBUTE, true);
String qualifier = reader.getAttribute(QUALIFIER_ATTRIBUTE);
boolean override = reader.getBooleanAttribute(OVERRIDE_ATTRIBUTE, context.defaultOverride);
List<ValueDefinition> values = new ArrayList<ValueDefinition>();
final QName elementName = reader.getElementName();
while (reader.nextWhileNotEnd(elementName)) {
if (reader.isStartElement()) {
if (reader.isStartElement(DESCRIPTION_ELEMENT)) {
continue;
}
if (reader.isStartElement(REF_ELEMENT)) {
values.add(readRefElement(context, reader));
continue;
}
if (reader.isStartElement(BEAN_ELEMENT)) {
BeanDefinition bd = readBean(container, reader, context);
if (null != bd) {
values.add(new ValueDefinition(bd));
}
continue;
}
throw new BeanDefinitionException("The value element '" + reader.getElementLocalName() + "' not supported in 'bean-list' element, source : " + reader.getSource());
}
}
container.addBeanList(new BeanListDefinition(source, beanType, qualifier, override, values));
}