1 package org
.argeo
.slc
.core
.execution
.xml
;
3 import org
.argeo
.slc
.core
.execution
.ParameterRef
;
4 import org
.springframework
.beans
.factory
.support
.BeanDefinitionBuilder
;
5 import org
.springframework
.beans
.factory
.xml
.AbstractSingleBeanDefinitionParser
;
6 import org
.springframework
.beans
.factory
.xml
.ParserContext
;
7 import org
.springframework
.util
.StringUtils
;
8 import org
.w3c
.dom
.Element
;
10 public class ParamDecorator
extends AbstractSingleBeanDefinitionParser
{
12 // public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder
14 // ParserContext ctx) {
15 // String paramName = ((Element) node).getAttribute("name");
16 // String propertyName = ((Element) node.getParentNode())
17 // .getAttribute("name");
18 // BeanDefinitionBuilder parameterRef = BeanDefinitionBuilder
19 // .genericBeanDefinition(ParameterRef.class);
20 // parameterRef.addPropertyReference("instantiationManager",
21 // "instantiationManager");
22 // parameterRef.addConstructorArgValue(paramName);
23 // bean.getBeanDefinition().getPropertyValues().addPropertyValue(
24 // propertyName, parameterRef.getBeanDefinition());
29 protected void doParse(Element element
, ParserContext parserContext
,
30 BeanDefinitionBuilder builder
) {
31 String paramName
= element
.getAttribute("name");
33 String instantationManagerRef
= element
34 .getAttribute("instantiationManager");
35 if (!StringUtils
.hasText(instantationManagerRef
))
36 instantationManagerRef
= "instantiationManager";
37 builder
.addPropertyReference("instantiationManager",
38 instantationManagerRef
);
39 builder
.addConstructorArgValue(paramName
);
43 protected Class
<ParameterRef
> getBeanClass(Element element
) {
44 return ParameterRef
.class;