package eu.dnetlib.contract.utils;

import org.apache.log4j.Logger;
import org.opensaml.lite.common.SAMLObject;

import eu.dnetlib.enabling.aas.holder.IDataHolder;

/**
 * Assertions attacher utility class.
 * Copies assertions from output data holder to input data holder.
 * 
 * @author mhorst
 *
 */
public class AssertionAttacher {
	
	protected final Logger log = Logger.getLogger(this.getClass());
	
	protected IDataHolder<SAMLObject[]> outDataHolder;
	
	protected IDataHolder<SAMLObject[]> inDataHolder;

	/**
	 * Attaches assertions to inDataHolder.
	 */
	public void attachAssertion() {
		SAMLObject[] data = outDataHolder.getData();
		if (data!=null && data.length>0) {
			log.info("attaching " + data.length + " assertions");
		inDataHolder.storeData(data);
		} else {
			log.warn("no assertions to be attached!");
		}
	}
	
	public void setOutDataHolder(IDataHolder<SAMLObject[]> outDataHolder) {
		this.outDataHolder = outDataHolder;
	}

	public void setInDataHolder(IDataHolder<SAMLObject[]> inDataHolder) {
		this.inDataHolder = inDataHolder;
	}

}
