1
2
3
4
5
6
7
8
9
10 package org.mule.config.spring.parsers.generic;
11
12 import org.mule.util.StringUtils;
13
14 import org.w3c.dom.Element;
15 import org.w3c.dom.Node;
16
17
18
19
20
21 public class DescendentDefinitionParser extends ChildDefinitionParser
22 {
23 public DescendentDefinitionParser(String setterMethod, Class clazz)
24 {
25 super(setterMethod, clazz);
26 }
27
28 protected String getParentBeanName(Element element)
29 {
30 Node node = element;
31 while (null != node && node instanceof Element)
32 {
33 String name = super.getParentBeanName((Element) node);
34 if (!StringUtils.isBlank(name))
35 {
36 return name;
37 }
38 node = element.getParentNode();
39 }
40 throw new IllegalStateException("Bean: " + element.getNodeName() + " has no grandparent");
41 }
42 }