org.mule.config.spring.parsers.generic.GrandchildDefinitionParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mule-module-spring-config Show documentation
Show all versions of mule-module-spring-config Show documentation
Mule Builder for use with Spring 2.X Namespace based XML
configuration.
/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.config.spring.parsers.generic;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
/**
* Same as ChildDefinitionParser but injects the child element into the grandparent object
* (2 levels up in the XML tree).
*/
public class GrandchildDefinitionParser extends ChildDefinitionParser
{
public GrandchildDefinitionParser(String setterMethod, Class clazz)
{
super(setterMethod, clazz);
}
public GrandchildDefinitionParser(String setterMethod, Class clazz, Class constraint, boolean allowClassAttribute)
{
super(setterMethod, clazz, constraint, allowClassAttribute);
}
@Override
protected String getParentBeanName(Element element)
{
return getGrandparentBeanName(element);
}
protected String getGrandparentBeanName(Element element)
{
Node parent = element.getParentNode();
if (parent == null)
{
logger.error("No parent node found for element " + element);
return null;
}
Node grandparent = parent.getParentNode();
if (grandparent == null)
{
logger.error("No parent node found for element " + parent);
return null;
}
Node grandparentNameAttribute = grandparent.getAttributes().getNamedItem("name");
if (grandparentNameAttribute == null)
{
logger.error("Grandparent node has no 'name' attribute: " + grandparent);
return null;
}
return grandparentNameAttribute.getNodeValue();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy