001    /*----------------    FILE HEADER  ------------------------------------------
002    
003    This file is part of deegree.
004    Copyright (C) 2001 by:
005    EXSE, Department of Geography, University of Bonn
006    http://www.giub.uni-bonn.de/exse/
007    lat/lon Fitzke/Fretter/Poth GbR
008    http://www.lat-lon.de
009    
010    This library is free software; you can redistribute it and/or
011    modify it under the terms of the GNU Lesser General Public
012    License as published by the Free Software Foundation; either
013    version 2.1 of the License, or (at your option) any later version.
014    
015    This library is distributed in the hope that it will be useful,
016    but WITHOUT ANY WARRANTY; without even the implied warranty of
017    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
018    Lesser General Public License for more details.
019    
020    You should have received a copy of the GNU Lesser General Public
021    License along with this library; if not, write to the Free Software
022    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
023    
024    Contact:
025    
026    Andreas Poth
027    lat/lon Fitzke/Fretter/Poth GbR
028    Meckenheimer Allee 176
029    53115 Bonn
030    Germany
031    E-Mail: poth@lat-lon.de
032    
033    Jens Fitzke
034    Department of Geography
035    University of Bonn
036    Meckenheimer Allee 166
037    53115 Bonn
038    Germany
039    E-Mail: jens.fitzke@uni-bonn.de
040    
041    
042     ---------------------------------------------------------------------------*/
043    package org.opengis.webservice;
044    
045    // J2SE direct dependencies
046    import java.util.Map;
047    
048    
049    /**
050     * Base interface for all request on OGC Web Services (OWS). Each
051     * class that capsulates a request against an OWS has to implements this
052     * interface.
053     *
054     * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
055     */
056    public interface WebServiceRequest {
057        /**
058         * Finally, the requests allow for optional vendor-specific parameters (VSPs)
059         * that will enhance the results of a request. Typically, these are used for
060         * private testing of non-standard functionality prior to possible
061         * standardization. A generic client is not required or expected to make use
062         * of these VSPs.
063         */
064        Map<String,String> getVendorSpecificParameters();
065    
066        /**
067         * Returns the ID of a request.
068         */
069        String getId();
070    
071        /**
072         * Returns the requested service version.
073         */
074        String getVersion();
075    
076        /**
077         * Returns the name of the service that is tagerted by a request.
078         */
079        String getServiceName();
080    
081        /**
082         * Returns the URI of a HTTP GET request. If the request doesn't support
083         * HTTP GET a <tt>WebServiceException</tt> will be thrown
084         *
085         * @deprecated should be replaced by a factory class.
086         */
087        String getRequestParameter() throws WebServiceException;
088    }