protected Object parsePropertySubElement(Element valueElement, String beanName) { if (valueElement.getTagName().equals(VALUE_ELEMENT)) { for (Node nd = valueElement.getFirstChild(); nd != null; nd = nd.getNextSibling()) { if (Node.ELEMENT_NODE == nd.getNodeType()) { return nd; } } } return super.parsePropertySubElement(valueElement, beanName); } }
/** * Parse a list element. */ protected List parseListElement(Element collectionEle, String beanName) throws BeanDefinitionStoreException { NodeList nl = collectionEle.getChildNodes(); ManagedList list = new ManagedList(nl.getLength()); for (int i = 0; i < nl.getLength(); i++) { if (nl.item(i) instanceof Element) { Element ele = (Element) nl.item(i); list.add(parsePropertySubElement(ele, beanName)); } } return list; }
/** * Parse a set element. */ protected Set parseSetElement(Element collectionEle, String beanName) throws BeanDefinitionStoreException { NodeList nl = collectionEle.getChildNodes(); ManagedSet set = new ManagedSet(nl.getLength()); for (int i = 0; i < nl.getLength(); i++) { if (nl.item(i) instanceof Element) { Element ele = (Element) nl.item(i); set.add(parsePropertySubElement(ele, beanName)); } } return set; }
/** * Parse a key sub-element of a map element. */ protected Object parseKeyElement(Element keyEle, String beanName) throws BeanDefinitionStoreException { NodeList nl = keyEle.getChildNodes(); Element subElement = null; for (int i = 0; i < nl.getLength(); i++) { if (nl.item(i) instanceof Element) { Element candidateEle = (Element) nl.item(i); // Child element is what we're looking for. if (subElement != null) { throw new BeanDefinitionStoreException( getResource(), beanName, "<key> must not contain more than one value sub-element"); } subElement = candidateEle; } } return parsePropertySubElement(subElement, beanName); }
protected Object parsePropertySubElement(Element element, String beanName) throws BeanDefinitionStoreException { String uri = element.getNamespaceURI(); String localName = getLocalName(element); if ((!isEmpty(uri) && !(uri.equals(SPRING_SCHEMA) || uri.equals(SPRING_SCHEMA_COMPAT))) || !reservedElementNames.contains(localName)) { Object answer = parseBeanFromExtensionElement(element); if (answer != null) { return answer; } } if (QNAME_ELEMENT.equals(localName) && isQnameIsOnClassPath()) { Object answer = parseQNameElement(element); if (answer != null) { return answer; } } return super.parsePropertySubElement(element, beanName); }
return parsePropertySubElement(subElement, beanName);
value = parsePropertySubElement(valueEle, beanName);