package eu.dnetlib.contract.spring.beans;

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;

import eu.dnetlib.contract.node.IContractDefinitionNode;


/**
 * Abstract bean definition parser for all {@link IContractDefinitionNode} implementing
 * elements. It's main purpose is to set bean scope to prototype.
 * @author mhorst
 *
 */
public abstract class AbstractContractDefinitionNodeBeanDefinitionParser extends AbstractContractBeanDefinitionParser {

	/* (non-Javadoc)
	 * @see eu.dnetlib.contract.spring.beans.AbstractContractBeanDefinitionParser#doParse(org.w3c.dom.Element, org.springframework.beans.factory.xml.ParserContext, org.springframework.beans.factory.support.BeanDefinitionBuilder)
	 */
	@Override
	protected void doParse(Element element, ParserContext parserContext,
			BeanDefinitionBuilder builder) {
		builder.setScope(BeanDefinition.SCOPE_PROTOTYPE);
		super.doParse(element, parserContext, builder);
		
	}
}
