]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/xml/ParamDecorator.java
Improve executions and system calls
[gpl/argeo-slc.git] / runtime / org.argeo.slc.core / src / main / java / org / argeo / slc / core / execution / xml / ParamDecorator.java
1 package org.argeo.slc.core.execution.xml;
2
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;
9
10 public class ParamDecorator extends AbstractSingleBeanDefinitionParser {
11
12 // public BeanDefinitionHolder decorate(Node node, BeanDefinitionHolder
13 // bean,
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());
25 // return bean;
26 // }
27
28 @Override
29 protected void doParse(Element element, ParserContext parserContext,
30 BeanDefinitionBuilder builder) {
31 String paramName = element.getAttribute("name");
32
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);
40 }
41
42 @Override
43 protected Class<ParameterRef> getBeanClass(Element element) {
44 return ParameterRef.class;
45 }
46 }