Package org.vfny.geoserver.wcs.responses

Source Code of org.vfny.geoserver.wcs.responses.CoverageResponseDelegateFactory

/* Copyright (c) 2001 - 2007 TOPP - www.openplans.org.  All rights reserved.
* This code is licensed under the GPL 2.0 license, availible at the root
* application directory.
*/
package org.vfny.geoserver.wcs.responses;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;

import org.vfny.geoserver.wcs.responses.coverage.AscCoverageResponseDelegate;
import org.vfny.geoserver.wcs.responses.coverage.DebugCoverageResponseDelegate;
import org.vfny.geoserver.wcs.responses.coverage.GTopo30CoverageResponseDelegate;
import org.vfny.geoserver.wcs.responses.coverage.GeoTIFFCoverageResponseDelegate;
import org.vfny.geoserver.wcs.responses.coverage.IMGCoverageResponseDelegate;


/**
* DOCUMENT ME!
*
* @author $Author: Alessio Fabiani (alessio.fabiani@gmail.com) $ (last
*         modification)
* @author $Author: Simone Giannecchini (simboss1@gmail.com) $ (last
*         modification)
*/
public class CoverageResponseDelegateFactory {
    /** DOCUMENT ME! */
    private static final List<CoverageResponseDelegate> encoders = new ArrayList<CoverageResponseDelegate>();

    static {
        encoders.add(new AscCoverageResponseDelegate());
        encoders.add(new IMGCoverageResponseDelegate());
        encoders.add(new GTopo30CoverageResponseDelegate());
        encoders.add(new GeoTIFFCoverageResponseDelegate());
        encoders.add(new DebugCoverageResponseDelegate());
    }

    private CoverageResponseDelegateFactory() {
    }

    /**
     * Creates an encoder for a specific getfeature results output format
     *
     * @param outputFormat
     *            DOCUMENT ME!
     *
     * @return DOCUMENT ME!
     */
    public static CoverageResponseDelegate encoderFor(String outputFormat) {
        CoverageResponseDelegate encoder = null;

        for (Iterator it = encoders.iterator(); it.hasNext();) {
            encoder = (CoverageResponseDelegate) it.next();

            if (encoder.canProduce(outputFormat)) {
                try {
                    if (encoder != null) {
                        return (CoverageResponseDelegate) encoder.getClass().newInstance();
                    }
                } catch (IllegalAccessException ex) {
                    final NoSuchElementException e = new NoSuchElementException(new StringBuffer(
                                "Can't create the encoder ").append(encoder.getClass().getName())
                                                                                                                             .toString());
                    e.initCause(ex);
                    throw e;
                } catch (InstantiationException ex) {
                    final NoSuchElementException e = new NoSuchElementException(new StringBuffer(
                                "Can't create the encoder ").append(encoder.getClass().getName())
                                                                                                                             .toString());
                    e.initCause(ex);
                    throw e;
                }
            }
        }

        return null;
    }
   
   
}
TOP

Related Classes of org.vfny.geoserver.wcs.responses.CoverageResponseDelegateFactory

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.