package eu.dnetlib.contract.utils;

/**
 * XML utilities.
 * @author mhorst
 *
 */
public class XMLUtils {

	public static final String CONTRACT_MODULE_NS = "http://www.icm.edu.pl/driver2/contract-module";
	
	/**
	 * Constructor plug.
	 */
	private XMLUtils() {}
	
	
	/**
	 * Encapsulates source string in CDATA xml element.
	 * @param source
	 * @return encapsulated string in CDATA xml element
	 */
	public static String encapsulateInCDATA(String source) {
		StringBuffer strBuff = new StringBuffer();
		strBuff.append("<![CDATA[");
		strBuff.append(source);
		strBuff.append("]]>");
		return strBuff.toString();
	}
	
	/**
	 * Builds contract error element.
	 * @param errorMessage
	 * @return contract error element
	 */
	public static String buildContractErrorElement(String errorMessage) {
		StringBuffer strBuff = new StringBuffer();
		strBuff.append("<error xmlns=\"");
		strBuff.append(CONTRACT_MODULE_NS);
		strBuff.append("\">");
		strBuff.append(encapsulateInCDATA(errorMessage));
		strBuff.append("</error>");
		return strBuff.toString();
	}
}
