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