protected ValueDefinition readSet(BeanContainer container, XmlReader reader, LoaderContext context) { boolean merge = boolAttribute(reader, MERGE_ATTRIBUTE, false); Class<?> valueType = javaTypeAttribute(reader, VALUE_TYPE_ATTRIBUTE); Set<ValueDefinition> values = new LinkedHashSet<>(); final QName elementName = reader.getElementName(); while (reader.nextWhileNotEnd(elementName)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } ValueDefinition vd = readValueElement(container, reader, context); if (null != vd) { values.add(vd); } } } return new ValueDefinition(values, merge, null, null, valueType); }
protected ValueDefinition readList(BeanContainer container, XmlReader reader, LoaderContext context) { boolean merge = boolAttribute(reader, MERGE_ATTRIBUTE, false); Class<?> valueType = javaTypeAttribute(reader, VALUE_TYPE_ATTRIBUTE); List<ValueDefinition> values = new ArrayList<>(); final QName elementName = reader.getElementName(); while (reader.nextWhileNotEnd(elementName)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } ValueDefinition vd = readValueElement(container, reader, context); if (null != vd) { values.add(vd); } } } return new ValueDefinition(values, merge, null, null, valueType); }
protected ValueDefinition readArray(BeanContainer container, XmlReader reader, LoaderContext context) { boolean merge = boolAttribute(reader, MERGE_ATTRIBUTE, false); Class<?> valueType = javaTypeAttribute(reader, VALUE_TYPE_ATTRIBUTE); List<ValueDefinition> values = new ArrayList<>(); while (reader.nextWhileNotEnd(ARRAY_ELEMENT)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } if (reader.isStartElement()) { ValueDefinition vd = readValueElement(container, reader, context); if (null != vd) { values.add(vd); } continue; } throw new BeanDefinitionException("unsupported child element '" + reader.getElementLocalName() + "' in element 'array', source : " + reader.getSource()); } } return new ValueDefinition(values.toArray(), merge, null, null, valueType); }
protected ValueDefinition readValue(BeanContainer container, XmlReader reader, LoaderContext context, String elementName) { String value = reader.getAttributeOrNull(VALUE_ATTRIBUTE); if (null != value) { return resolvedString(value); } ValueDefinition br = tryReadRefAttributes(context, reader); if (null != br) { return br; } while (reader.nextWhileNotEnd(elementName)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } if (reader.isStartElement()) { return readValueElement(container, reader, context); } throw new BeanDefinitionException("unsupported child element '" + reader.getElementLocalName() + "' in element '" + elementName + "', source : " + reader.getSource()); } } throw new BeanDefinitionException("No value definition at line " + reader.getLineNumber() + ", element '" + elementName + "', in xml '" + reader.getSource() + "'"); }
protected ValueDefinition readEntryValue(BeanContainer container, XmlReader reader, LoaderContext context) { Class<?> valueType = javaTypeAttribute(reader, VALUE_TYPE_ATTRIBUTE); String value = reader.getAttribute(VALUE_ATTRIBUTE); if (!Strings.isEmpty(value)) { return resolvedString(valueType, value); } String valueRef = reader.getAttribute(VALUE_REF_ATTRIBUTE); if (!Strings.isEmpty(valueRef)) { return beanReference(context, valueRef); } while (reader.nextWhileNotEnd(ENTRY_ELEMENT)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } if (reader.isStartElement()) { return readValueElement(container, reader, context); } throw new BeanDefinitionException("unsupported child element '" + reader.getElementLocalName() + "' in element 'entry', source : " + reader.getSource()); } } return null; }