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 }