package eu.dnetlib.contract.conv;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

/**
 * ComplexObjects builder.
 * Uses XStream string object representation at input to build object.
 * No custom aliases are used at the moment.
 * @author mhorst
 *
 */
public class ComplexObjectsXStreamBuilder {

	/**
	 * XStream converter.
	 */
	private XStream xStream; 
	
	/**
	 * Default constructor.
	 */
	public ComplexObjectsXStreamBuilder() {
		xStream = new XStream(new DomDriver());
	}
	
	/**
	 * Builds object from its xmlRepresentation using xStream library.
	 * @param xmlRepresentation
	 * @return object built from its xmlRepresentation using xStream library
	 */
	public Object buildObject(String xmlRepresentation) {
		if (xmlRepresentation==null) {
			return null;
		}
		return xStream.fromXML(xmlRepresentation);
	}
}
