org.compass.core.converter.xsem.PrototypeXmlContentConverterWrapper Maven / Gradle / Ivy
package org.compass.core.converter.xsem;
import java.io.Reader;
import org.compass.core.CompassException;
import org.compass.core.config.CompassConfigurable;
import org.compass.core.config.CompassSettings;
import org.compass.core.converter.ConversionException;
import org.compass.core.xml.AliasedXmlObject;
import org.compass.core.xml.XmlObject;
/**
* An {@link XmlContentConverter} implementation that wraps the actual {@link XmlContentConverter}
* configured (based on the settings) and creates and configures a new {@link XmlContentConverter}
* for both {@link #toXml(org.compass.core.xml.XmlObject)} and {@link #fromXml(String, java.io.Reader)}.
*
* @author kimchy
*/
public class PrototypeXmlContentConverterWrapper implements XmlContentConverterWrapper, CompassConfigurable {
private CompassSettings settings;
public void configure(CompassSettings settings) throws CompassException {
this.settings = settings;
}
/**
* Converts the {@link XmlObject} into raw xml by creating and configuring a new
* {@link XmlContentConverter} implementation.
*
* @see XmlContentConverter#toXml(org.compass.core.xml.XmlObject)
*/
public String toXml(XmlObject xmlObject) throws ConversionException {
return createContentConverter().toXml(xmlObject);
}
/**
* Converts a raw xml and an alias into an {@link AliasedXmlObject} by creating and configuring
* a new {@link XmlContentConverter} implementation.
*
* @see XmlContentConverter#fromXml(String, java.io.Reader)
*/
public AliasedXmlObject fromXml(String alias, Reader xml) throws ConversionException {
return createContentConverter().fromXml(alias, xml);
}
public XmlContentConverter createContentConverter() {
return XmlContentConverterUtils.createXmlContentConverter(settings);
}
public String toString() {
return "Prototype Xml Content Converter wrapping [" + XmlContentConverterUtils.createXmlContentConverter(settings) + "]";
}
}