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.capability;
044    
045    // OpenGIS direct dependencies
046    import org.opengis.util.InternationalString;
047    import org.opengis.metadata.citation.Contact;
048    import org.opengis.metadata.citation.OnlineResource;
049    import org.opengis.metadata.identification.Keywords;
050    import org.opengis.metadata.constraint.Constraints;
051    
052    // Annotations
053    import org.opengis.annotation.UML;
054    import static org.opengis.annotation.Obligation.*;
055    import static org.opengis.annotation.Specification.*;
056    
057    
058    /**
059     * Provides acces to the <CapabilitiesService> element of the  Capabilities XML
060     * providing general metadata for the service as a whole. It shall include a
061     * Name, Title, and Online Resource URL. Optionally, Abstract, Keyword List,
062     * Contact Information, Fees, and Access Constraints may be provided. The meaning
063     * of most of these elements is defined in [ISO 19115]. The CapabilitiesService Name shall
064     * be "OGC:WMS" in the case of a Web Map CapabilitiesService.
065     *
066     * @author <a href="mailto:k.lupp@web.de">Katharina Lupp</a>
067     * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider</a>
068     */
069    public interface CapabilitiesService {
070        /**
071         * Returns the name of the service. Typically, the Name is a single word used
072         * for machine-to-machine communication.
073         */
074        @UML(identifier="name", specification=UNSPECIFIED)
075        String getName();
076    
077        /**
078         * Returns the title of the service. The Title is for the benefit of humans.
079         * The CapabilitiesService Title is at the discretion of the provider, and should be
080         * brief yet descriptive enough to identify this server in a menu with other
081         * servers.
082         *
083         * @see #getName()
084         */
085        @UML(identifier="title", specification=UNSPECIFIED)
086        InternationalString getTitle();
087    
088        /**
089         * The Abstract element allows a descriptive narrative providing more
090         * information about the enclosing object.
091         */
092        InternationalString getAbstract();
093    
094        /**
095         * A list of keywords or keyword phrases should be included to help catalog
096         * searching.
097         */
098        @UML(identifier="keywordList", specification=UNSPECIFIED)
099        Keywords getKeywords();
100    
101        /**
102         * The OnlineResource element within the CapabilitiesService element can be used, for
103         * example, to point to the web site of the service provider. There are other
104         * OnlineResource elements used for the URL prefix of each supported operation.
105         */
106        @UML(identifier="onlineResource", specification=UNSPECIFIED)
107        OnlineResource getOnlineResource();
108    
109        /**
110         * Returns informations who to contact for questions about the service. This
111         * method returns <tt>null</tt> if no contact informations are available.
112         */
113        @UML(identifier="contactInformation", specification=UNSPECIFIED)
114        Contact getContactInformation();
115    
116        /**
117         * Returns fees assigned to the service. If no fees defined "none" will be
118         * returned.
119         */
120        @UML(identifier="fees", specification=UNSPECIFIED)
121        InternationalString getFees();
122    
123        /**
124         * Returns access constraints assigned to the service. If no access
125         * constraints are defined {@code null} will be returned.
126         */
127        @UML(identifier="accessConstraints", specification=UNSPECIFIED)
128        Constraints getAccessConstraints();
129    }