/* * 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.runtime.config.spring.parsers.specific; import static org.mule.runtime.core.api.config.MuleProperties.OBJECT_MULE_CONFIGURATION; import org.mule.runtime.config.spring.parsers.generic.OptionalChildDefinitionParser; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.w3c.dom.Element; public class RetryNotifierDefinitionParser extends OptionalChildDefinitionParser { public RetryNotifierDefinitionParser() { super("notifier"); } public RetryNotifierDefinitionParser(Class clazz) { super("notifier", clazz); } @Override protected boolean isChild(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { return !isConfigElement(element); } private boolean isConfigElement(Element element) { return getAncestorBeanName(element).equals(OBJECT_MULE_CONFIGURATION); } private String getAncestorBeanName(Element element) { return ((Element) ((Element) element.getParentNode()).getParentNode()).getAttribute(ATTRIBUTE_NAME); } }