1
2
3
4
5
6
7
8
9
10 package org.mule.config.spring.parsers.generic;
11
12 import org.w3c.dom.Element;
13 import org.w3c.dom.Node;
14
15
16
17
18
19 public class GrandchildDefinitionParser extends ChildDefinitionParser
20 {
21 public GrandchildDefinitionParser(String setterMethod, Class clazz)
22 {
23 super(setterMethod, clazz);
24 }
25
26 public GrandchildDefinitionParser(String setterMethod, Class clazz, Class constraint, boolean allowClassAttribute)
27 {
28 super(setterMethod, clazz, constraint, allowClassAttribute);
29 }
30
31 @Override
32 protected String getParentBeanName(Element element)
33 {
34 return getGrandparentBeanName(element);
35 }
36
37 protected String getGrandparentBeanName(Element element)
38 {
39 Node parent = element.getParentNode();
40 if (parent == null)
41 {
42 logger.error("No parent node found for element " + element);
43 return null;
44 }
45 Node grandparent = parent.getParentNode();
46 if (grandparent == null)
47 {
48 logger.error("No parent node found for element " + parent);
49 return null;
50 }
51 Node grandparentNameAttribute = grandparent.getAttributes().getNamedItem("name");
52 if (grandparentNameAttribute == null)
53 {
54 logger.error("Grandparent node has no 'name' attribute: " + grandparent);
55 return null;
56 }
57 return grandparentNameAttribute.getNodeValue();
58 }
59 }