XmlContentConverterUtils.java :  » Search-Engine » compass-2.0 » org » compass » core » converter » xsem » Java Open Source

Java Open Source » Search Engine » compass 2.0 
compass 2.0 » org » compass » core » converter » xsem » XmlContentConverterUtils.java
package org.compass.core.converter.xsem;

import org.compass.core.config.CompassConfigurable;
import org.compass.core.config.CompassEnvironment;
import org.compass.core.config.CompassSettings;
import org.compass.core.config.ConfigurationException;
import org.compass.core.util.ClassUtils;

/**
 * A set of utilities for {@link XmlContentConverter}.
 *
 * @author kimchy
 */
public abstract class XmlContentConverterUtils {

    /**
     * Creates a new {@link XmlContentConverter} based on the given settings.
     */
    public static XmlContentConverter createXmlContentConverter(CompassSettings settings) throws ConfigurationException {
        String type = settings.getSetting(CompassEnvironment.Converter.XmlContent.TYPE);
        if (type == null) {
            throw new ConfigurationException("xmlContent type configuration can not be found, please set it in the configuration settings");
        }
        XmlContentConverter xmlContentConverter = null;
        try {
            xmlContentConverter = (XmlContentConverter) ClassUtils.forName(type, settings.getClassLoader()).newInstance();
        } catch (Exception e) {
            throw new ConfigurationException("Failed to create xmlContent [" + type + "]", e);
        }
        if (xmlContentConverter instanceof CompassConfigurable) {
            ((CompassConfigurable) xmlContentConverter).configure(settings);
        }
        if (xmlContentConverter instanceof SupportsXmlContentWrapper) {
            String wrapper = settings.getSetting(CompassEnvironment.Converter.XmlContent.WRAPPER, CompassEnvironment.Converter.XmlContent.WRAPPER_PROTOTYPE);
            if (!((SupportsXmlContentWrapper) xmlContentConverter).supports(wrapper)) {
                throw new SupportsXmlContentWrapper.NotSupportedXmlContentWrapperException(xmlContentConverter, wrapper);
            }
        }
        return xmlContentConverter;
    }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.