/** * Handle the ItemReader, ItemProcessor, and ItemWriter attributes/elements. */ private void handleItemHandler(AbstractBeanDefinition enclosing, String handlerName, String propertyName, String adapterClassName, boolean required, Element element, ParserContext parserContext, MutablePropertyValues propertyValues, boolean underspecified) { String refName = element.getAttribute(handlerName); List<Element> children = DomUtils.getChildElementsByTagName(element, handlerName); if (children.size() == 1) { if (StringUtils.hasText(refName)) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element may not have both a '" + handlerName + "' attribute and a <" + handlerName + "/> element.", element); } handleItemHandlerElement(enclosing, propertyName, adapterClassName, propertyValues, children.get(0), parserContext); } else if (children.size() > 1) { parserContext.getReaderContext().error( "The <" + handlerName + "/> element may not appear more than once in a single <" + element.getNodeName() + "/>.", element); } else if (StringUtils.hasText(refName)) { propertyValues.addPropertyValue(propertyName, new RuntimeBeanReference(refName)); } else if (required && !underspecified) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element has neither a '" + handlerName + "' attribute nor a <" + handlerName + "/> element.", element); } }
/** * Handle the ItemReader, ItemProcessor, and ItemWriter attributes/elements. */ private void handleItemHandler(AbstractBeanDefinition enclosing, String handlerName, String propertyName, String adapterClassName, boolean required, Element element, ParserContext parserContext, MutablePropertyValues propertyValues, boolean underspecified) { String refName = element.getAttribute(handlerName); List<Element> children = DomUtils.getChildElementsByTagName(element, handlerName); if (children.size() == 1) { if (StringUtils.hasText(refName)) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element may not have both a '" + handlerName + "' attribute and a <" + handlerName + "/> element.", element); } handleItemHandlerElement(enclosing, propertyName, adapterClassName, propertyValues, children.get(0), parserContext); } else if (children.size() > 1) { parserContext.getReaderContext().error( "The <" + handlerName + "/> element may not appear more than once in a single <" + element.getNodeName() + "/>.", element); } else if (StringUtils.hasText(refName)) { propertyValues.addPropertyValue(propertyName, new RuntimeBeanReference(refName)); } else if (required && !underspecified) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element has neither a '" + handlerName + "' attribute nor a <" + handlerName + "/> element.", element); } }
/** * Handle the ItemReader, ItemProcessor, and ItemWriter attributes/elements. */ private void handleItemHandler(String handlerName, String propertyName, String adapterClassName, boolean required, Element element, ParserContext parserContext, MutablePropertyValues propertyValues, boolean underspecified) { String refName = element.getAttribute(handlerName); @SuppressWarnings("unchecked") List<Element> children = DomUtils.getChildElementsByTagName(element, handlerName); if (children.size() == 1) { if (StringUtils.hasText(refName)) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element may not have both a '" + handlerName + "' attribute and a <" + handlerName + "/> element.", element); } handleItemHandlerElement(propertyName, adapterClassName, propertyValues, children.get(0), parserContext); } else if (children.size() > 1) { parserContext.getReaderContext().error( "The <" + handlerName + "/> element may not appear more than once in a single <" + element.getNodeName() + "/>.", element); } else if (StringUtils.hasText(refName)) { propertyValues.addPropertyValue(propertyName, new RuntimeBeanReference(refName)); } else if (required && !underspecified) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element has neither a '" + handlerName + "' attribute nor a <" + handlerName + "/> element.", element); } }
/** * Handle the ItemReader, ItemProcessor, and ItemWriter attributes/elements. */ private void handleItemHandler(AbstractBeanDefinition enclosing, String handlerName, String propertyName, String adapterClassName, boolean required, Element element, ParserContext parserContext, MutablePropertyValues propertyValues, boolean underspecified) { String refName = element.getAttribute(handlerName); List<Element> children = DomUtils.getChildElementsByTagName(element, handlerName); if (children.size() == 1) { if (StringUtils.hasText(refName)) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element may not have both a '" + handlerName + "' attribute and a <" + handlerName + "/> element.", element); } handleItemHandlerElement(enclosing, propertyName, adapterClassName, propertyValues, children.get(0), parserContext); } else if (children.size() > 1) { parserContext.getReaderContext().error( "The <" + handlerName + "/> element may not appear more than once in a single <" + element.getNodeName() + "/>.", element); } else if (StringUtils.hasText(refName)) { propertyValues.addPropertyValue(propertyName, new RuntimeBeanReference(refName)); } else if (required && !underspecified) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element has neither a '" + handlerName + "' attribute nor a <" + handlerName + "/> element.", element); } }
/** * Handle the ItemReader, ItemProcessor, and ItemWriter attributes/elements. */ private void handleItemHandler(AbstractBeanDefinition enclosing, String handlerName, String propertyName, String adapterClassName, boolean required, Element element, ParserContext parserContext, MutablePropertyValues propertyValues, boolean underspecified) { String refName = element.getAttribute(handlerName); List<Element> children = DomUtils.getChildElementsByTagName(element, handlerName); if (children.size() == 1) { if (StringUtils.hasText(refName)) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element may not have both a '" + handlerName + "' attribute and a <" + handlerName + "/> element.", element); } handleItemHandlerElement(enclosing, propertyName, adapterClassName, propertyValues, children.get(0), parserContext); } else if (children.size() > 1) { parserContext.getReaderContext().error( "The <" + handlerName + "/> element may not appear more than once in a single <" + element.getNodeName() + "/>.", element); } else if (StringUtils.hasText(refName)) { propertyValues.addPropertyValue(propertyName, new RuntimeBeanReference(refName)); } else if (required && !underspecified) { parserContext.getReaderContext().error( "The <" + element.getNodeName() + "/> element has neither a '" + handlerName + "' attribute nor a <" + handlerName + "/> element.", element); } }