X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2Fxml%2FFlowBeanDefinitionParser.java;h=8594e956e4b375c4185dd3628d17d2ddee228d11;hb=b9336fb77b251c886f7bc09ffafeb9818a50eb94;hp=7bc04ea5466dba96762e13218f184dc887709047;hpb=bb58cdb33cceffa06b72bc191e63022b9a739d14;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/xml/FlowBeanDefinitionParser.java b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/xml/FlowBeanDefinitionParser.java index 7bc04ea54..8594e956e 100644 --- a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/xml/FlowBeanDefinitionParser.java +++ b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/xml/FlowBeanDefinitionParser.java @@ -42,6 +42,10 @@ public class FlowBeanDefinitionParser extends if (StringUtils.hasText(parent)) builder.setParentName(parent); + + builder.getBeanDefinition().setDescription(DomUtils.getChildElementValueByTagName(element, + "description")); + List execElems = new ArrayList(); List argsElems = new ArrayList(); NodeList nodeList = element.getChildNodes(); @@ -50,7 +54,7 @@ public class FlowBeanDefinitionParser extends if (node instanceof Element) { if (DomUtils.nodeNameEquals(node, "arg")) argsElems.add((Element) node); - else + else if(!DomUtils.nodeNameEquals(node, "description")) execElems.add((Element) node); } } @@ -73,21 +77,10 @@ public class FlowBeanDefinitionParser extends // Executables if (execElems.size() != 0) { ManagedList executables = new ManagedList(execElems.size()); - for (int i = 0; i < execElems.size(); i++) { - Element child = execElems.get(i); - String name = child.getLocalName(); - if (DomUtils.nodeNameEquals(child, "bean") - || DomUtils.nodeNameEquals(child, "ref")) { - // Object target = parseBeanReference((Element) child, - // parserContext, builder); - executables.add(NamespaceUtils.parseBeanReference(child, - parserContext, builder.getBeanDefinition())); - } else if (DomUtils.nodeNameEquals(child, "flow")) { - throw new SlcException( - "Nested flows are not yet supported, use a standard ref to another flow."); - } else { - throw new SlcException("Unsupported child '" + name + "'"); - } + for(Element child : execElems) { + // child validity check is performed in xsd + executables.add(NamespaceUtils.parseBeanOrReference(child, + parserContext, builder.getBeanDefinition())); } builder.addPropertyValue("executables", executables); }