All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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) + "]";
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy