protected BeanDefinitionBase readMapBean(BeanContainer container, XmlReader reader, LoaderContext context) { BeanDefinitionBase bean = new BeanDefinitionBase(reader.getSource()); readValuedBeanAttributes(container, reader, context, bean); bean.setBeanClass(classAttribute(reader, MAP_CLASS_ATTRIBUTE, false)); bean.setValueDefinition(readMap(container, reader, context)); bean.getValueDefinition().setDefinedType(bean.getBeanClass()); if (null == bean.getBeanClass()) { bean.setBeanClass(LinkedHashMap.class); } return bean; }
protected BeanDefinitionBase readListBean(BeanContainer container, XmlReader reader, LoaderContext context) { BeanDefinitionBase bean = new BeanDefinitionBase(reader.getSource()); readValuedBeanAttributes(container, reader, context, bean); bean.setBeanClass(classAttribute(reader, LIST_CLASS_ATTRIBUTE, false)); bean.setValueDefinition(readList(container, reader, context)); bean.getValueDefinition().setDefinedType(bean.getBeanClass()); if (null == bean.getBeanClass()) { bean.setBeanClass(ArrayList.class); } return bean; }
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)); }
protected BeanDefinitionBase readSetBean(BeanContainer container, XmlReader reader, LoaderContext context) { BeanDefinitionBase bean = new BeanDefinitionBase(reader.getSource()); readValuedBeanAttributes(container, reader, context, bean); bean.setBeanClass(classAttribute(reader, SET_CLASS_ATTRIBUTE, false)); bean.setValueDefinition(readSet(container, reader, context)); bean.getValueDefinition().setDefinedType(bean.getBeanClass()); if (null == bean.getBeanClass()) { bean.setBeanClass(LinkedHashSet.class); } return bean; }