package com.ejie.ab61.model.toolkit;

import java.io.StringWriter;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;

/**
 * Clase para obtener el XML a partir de un objeto
 * 
 *  
 * 
 * @param <I>
 */
public class MessageUnparser<I> {

	/**
	 * Metodo que genera un String con el XML que representa un objeto de
	 * negocio
	 * 
	 * @param object
	 *            I Clase a partir de la que se intentará generar el XML
	 * @return String
	 * @throws Exception
	 *             Exception
	 */
	public String parse(I object) throws Exception {

		if (object == null) {
			return null;
		}

		JAXBContext context = JAXBContext.newInstance(object.getClass());
		Marshaller marshaller = context.createMarshaller();
		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
		marshaller.setProperty(Marshaller.JAXB_ENCODING, "ISO-8859-1");

		StringWriter stringWriter = new StringWriter();

		marshaller.marshal(object, stringWriter);

		return stringWriter.getBuffer().toString();
	}

}
