Package org.geoserver.wps.transmute

Source Code of org.geoserver.wps.transmute.ComplexTransmuter

/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org. All rights reserved.
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/

package org.geoserver.wps.transmute;

import java.io.InputStream;

import org.geoserver.wps.WPSException;
import org.geotools.xml.Configuration;

import com.vividsolutions.jts.geom.Geometry;

/**
* ComplexTransmuter interface
*
* @author Lucas Reed, Refractions Research Inc
*/
public abstract class ComplexTransmuter implements Transmuter {
    /**
     * Returns absolute URL to the schema which defines the in
     */
    abstract public String getSchema(String urlBase);

    /**
     * Returns the class of the XMLConfiguration used to parse/encode
     *
     * @return
     */
    abstract public Class<?> getXMLConfiguration();

    /**
     * Returns mime-type of encoded data
     *
     * @return
     */
    abstract public String getMimeType();

    /**
     * Used to decode external XML documents for use as process inputs
     *
     * @param stream
     * @return
     */
    public Object decode(InputStream stream) {
        Object        decoded = null;
        Configuration config  = null;

        try {
            config = (Configuration)(this.getXMLConfiguration().getConstructor().newInstance());
        } catch(Exception e) {
            throw new WPSException("NoApplicableCode", "Failed to initialize XMLConfiguration");
        }

        org.geotools.xml.Parser parser = new org.geotools.xml.Parser(config);

        try {
            decoded = (Geometry)parser.parse(stream);
        } catch(Exception e) {
            throw new WPSException("NoApplicableCode", "Parsing error " + e);
        }

        return decoded;
    }

    /**
     * Used to encode document for server storage
     *
     * @param input
     * @return
     */
    public Object encode(Object input) {
        throw new WPSException("NoApplicableCode", "Unimplemented encoder for ComplexTransmuter.");
    }
}
TOP

Related Classes of org.geoserver.wps.transmute.ComplexTransmuter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.