    001    // $HeadURL:
    002    // /cvsroot/deegree/src/org/deegree/ogcwebservices/wms/protocol/WMSProtocolFactory.java,v
    003    // 1.7 2004/07/12 06:12:11 ap Exp $
    004    /*----------------------------------------------------------------------------
    005     This file is part of deegree, http://deegree.org/
    006     Copyright (C) 2001-2009 by:
    007       Department of Geography, University of Bonn
    008     and
    009       lat/lon GmbH
    010
    011     This library is free software; you can redistribute it and/or modify it under
    012     the terms of the GNU Lesser General Public License as published by the Free
    013     Software Foundation; either version 2.1 of the License, or (at your option)
    014     any later version.
    015     This library is distributed in the hope that it will be useful, but WITHOUT
    016     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    017     FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
    018     details.
    019     You should have received a copy of the GNU Lesser General Public License
    020     along with this library; if not, write to the Free Software Foundation, Inc.,
    021     59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    022
    023     Contact information:
    024
    025     lat/lon GmbH
    026     Aennchenstr. 19, 53177 Bonn
    027     Germany
    028     http://lat-lon.de/
    029
    030     Department of Geography, University of Bonn
    031     Prof. Dr. Klaus Greve
    032     Postfach 1147, 53001 Bonn
    033     Germany
    034     http://www.geographie.uni-bonn.de/deegree/
    035
    036     e-mail: info@deegree.org
    037    ----------------------------------------------------------------------------*/
    038    package org.deegree.ogcwebservices.wms.operation;
    039
    040    import org.deegree.ogcwebservices.AbstractOGCWebServiceRequest;
    041    import org.deegree.ogcwebservices.OGCWebServiceException;
    042    import org.deegree.ogcwebservices.OGCWebServiceRequest;
    043    import org.deegree.ogcwebservices.wms.configuration.WMSConfigurationType;
    044    import org.w3c.dom.Document;
    045
    046    /**
    047     * Factory that builds the different types of WMS-Requests & Responses.
    048     *
    049     * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider </a>
    050     * @author <a href="mailto:poth@lat-lon.de">Andreas Poth </a>
    051     * @author <a href="mailto:wanhoff@uni-bonn.de">Jeronimo Wanhoff </a>
    052     * @version $Revision: 18195 $ $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
    053     */
    054    public class WMSProtocolFactory {
    055
    056        /**
    057         * creates an instance of a <tt>WMSGetCapabilitiesResult</tt> object
    058         *
    059         * @param request
    060         *            request that lead to the response
    061         * @param exception
    062         *            exception if one occuered
    063         * @param capabilities
    064         *            WMS capabilities
    065         *
    066         * @return <tt>WMSGetCapabilitiesResult</tt>
    067         */
    068        public static WMSGetCapabilitiesResult createGetCapabilitiesResponse( OGCWebServiceRequest request,
    069                                                                              OGCWebServiceException exception,
    070                                                                              WMSConfigurationType capabilities ) {
    071
    072            WMSGetCapabilitiesResult res = null;
    073            if ( exception != null ) {
    074                res = new WMSGetCapabilitiesResult( request, exception );
    075            } else {
    076                res = new WMSGetCapabilitiesResult( request, capabilities );
    077            }
    078
    079            return res;
    080        }
    081
    082        /**
    083         * creates a <tt>WFSGetMapResponse</tt> object
    084         *
    085         * @param request
    086         *            a copy of the request that leads to this response
    087         * @param exception
    088         *            a describtion of an excetion (only if raised)
    089         * @param response
    090         *            the response to the request
    091         * @return the result
    092         */
    093        public static GetMapResult createGetMapResponse( OGCWebServiceRequest request, OGCWebServiceException exception,
    094                                                         Object response ) {
    095
    096            GetMapResult res = null;
    097            if ( exception != null ) {
    098                res = new GetMapResult( request, exception );
    099            } else {
    100                res = new GetMapResult( request, response );
    101            }
    102
    103            return res;
    104        }
    105
    106        /**
    107         * creates a <tt>WFSGetFeatureInfoResponse</tt> object
    108         *
    109         * @param request
    110         *            a copy of the request that leads to this response
    111         * @param exception
    112         *            a describtion of an excetion (only if raised)
    113         * @param featureInfo
    114         * @return the result object
    115         */
    116        public static GetFeatureInfoResult createGetFeatureInfoResponse( OGCWebServiceRequest request,
    117                                                                         OGCWebServiceException exception,
    118                                                                         String featureInfo ) {
    119
    120            GetFeatureInfoResult res = null;
    121            if ( exception != null ) {
    122                res = new GetFeatureInfoResult( request, exception );
    123            } else {
    124                res = new GetFeatureInfoResult( request, featureInfo );
    125            }
    126
    127            return res;
    128        }
    129
    130        /**
    131         * @param request
    132         * @param legendGraphic
    133         * @return the result object
    134         */
    135        public static GetLegendGraphicResult createGetLegendGraphicResponse( OGCWebServiceRequest request,
    136                                                                             Object legendGraphic ) {
    137            return new GetLegendGraphicResult( request, legendGraphic );
    138        }
    139
    140        /**
    141         * @param request
    142         * @param exception
    143         * @return the result object
    144         */
    145        public static GetLegendGraphicResult createGetLegendGraphicResponse( AbstractOGCWebServiceRequest request,
    146                                                                             Document exception ) {
    147            return new GetLegendGraphicResult( request, exception );
    148        }
    149
    150    }