001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/ogcwebservices/getcapabilities/CapabilitiesService.java $ 002 /*---------------- FILE HEADER ------------------------------------------ 003 004 This file is part of deegree. 005 Copyright (C) 2001-2008 by: 006 EXSE, Department of Geography, University of Bonn 007 http://www.giub.uni-bonn.de/deegree/ 008 lat/lon GmbH 009 http://www.lat-lon.de 010 011 This library is free software; you can redistribute it and/or 012 modify it under the terms of the GNU Lesser General Public 013 License as published by the Free Software Foundation; either 014 version 2.1 of the License, or (at your option) any later version. 015 016 This library is distributed in the hope that it will be useful, 017 but WITHOUT ANY WARRANTY; without even the implied warranty of 018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 019 Lesser General Public License for more details. 020 021 You should have received a copy of the GNU Lesser General Public 022 License along with this library; if not, write to the Free Software 023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 024 025 Contact: 026 027 Andreas Poth 028 lat/lon GmbH 029 Aennchenstr. 19 030 53115 Bonn 031 Germany 032 E-Mail: poth@lat-lon.de 033 034 Prof. Dr. Klaus Greve 035 Department of Geography 036 University of Bonn 037 Meckenheimer Allee 166 038 53115 Bonn 039 Germany 040 E-Mail: greve@giub.uni-bonn.de 041 042 043 ---------------------------------------------------------------------------*/ 044 package org.deegree.ogcwebservices.getcapabilities; 045 046 import java.net.URL; 047 import java.util.ArrayList; 048 049 import org.deegree.ogcbase.ContactInformation; 050 051 /** 052 * The interface provides acces to the <CapabilitiesService> element of the Capabilities XML 053 * providing general metadata for the service as a whole. It shall include a Name, Title, and Online 054 * Resource URL. Optionally, Abstract, Keyword List, Contact Information, Fees, and Access 055 * Constraints may be provided. The meaning of most of these elements is defined in [ISO 19115]. The 056 * CapabilitiesService Name shall be "ogc:WMS" in the case of a Web Map CapabilitiesService. 057 * <p> 058 * ---------------------------------------------------------------------- 059 * </p> 060 * 061 * @author <a href="mailto:k.lupp@web.de">Katharina Lupp</a> 062 * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider</a> 063 * @version $Revision: 9345 $ 064 */ 065 066 public class CapabilitiesService { 067 068 private ArrayList keywordList = null; 069 070 private ContactInformation contactInformation = null; 071 072 private String abstract_ = null; 073 074 private String accessConstraints = null; 075 076 private String fees = null; 077 078 private String name = null; 079 080 private String title = null; 081 082 private URL onlineResource = null; 083 084 /** 085 * constructor initializing the class with the OGCWebServiceCapabilities 086 */ 087 public CapabilitiesService( String name, String title, String abstract_, String[] keywords, URL onlineResource, 088 ContactInformation contactInformation, String fees, String accessConstraints ) { 089 keywordList = new ArrayList(); 090 setName( name ); 091 setTitle( title ); 092 setAbstract( abstract_ ); 093 setKeywordList( keywords ); 094 setOnlineResource( onlineResource ); 095 setContactInformation( contactInformation ); 096 setFees( fees ); 097 setAccessConstraints( accessConstraints ); 098 } 099 100 /** 101 * returns the name of the service. Typically, the Name is a single word used for 102 * machine-to-machine communication. 103 * 104 * @return name of the service 105 * 106 */ 107 public String getName() { 108 return name; 109 } 110 111 /** 112 * sets the name of the service. Typically, the Name is a single word used for 113 * machine-to-machine communication. 114 * 115 */ 116 public void setName( String name ) { 117 this.name = name; 118 } 119 120 /** 121 * Returns the title of the service. The Title is for the benefit of humans. The 122 * CapabilitiesService Title is at the discretion of the provider, and should be brief yet 123 * descriptive enough to identify this server in a menu with other servers. 124 * 125 * @see #getName() 126 * @return title of the service 127 * 128 */ 129 public String getTitle() { 130 return title; 131 } 132 133 /** 134 * Sets the title of the service. The Title is for the benefit of humans. The 135 * CapabilitiesService Title is at the discretion of the provider, and should be brief yet 136 * descriptive enough to identify this server in a menu with other servers. 137 * 138 * @see #getName() 139 * 140 */ 141 public void setTitle( String title ) { 142 this.title = title; 143 } 144 145 /** 146 * The Abstract element allows a descriptive narrative providing more information about the 147 * enclosing object. 148 */ 149 public String getAbstract() { 150 return abstract_; 151 } 152 153 /** 154 * Sets the abstract element 155 */ 156 public void setAbstract( String abstract_ ) { 157 this.abstract_ = abstract_; 158 } 159 160 /** 161 * A list of keywords or keyword phrases should be included to help catalog searching. 162 * Currently, no controlled vocabulary has been defined. 163 * 164 */ 165 public String[] getKeywordList() { 166 return (String[]) keywordList.toArray( new String[keywordList.size()] ); 167 } 168 169 /** 170 * adds the keywordList 171 */ 172 public void addKeyword( String keyword ) { 173 this.keywordList.add( keyword ); 174 } 175 176 /** 177 * sets the keywordList 178 */ 179 public void setKeywordList( String[] keywordList ) { 180 this.keywordList.clear(); 181 182 if ( keywordList != null ) { 183 for ( int i = 0; i < keywordList.length; i++ ) { 184 this.keywordList.add( keywordList[i] ); 185 } 186 } 187 } 188 189 /** 190 * The OnlineResource element within the CapabilitiesService element can be used, for example, 191 * to point to the web site of the service provider. There are other OnlineResource elements 192 * used for the URL prefix of each supported operation. 193 * 194 */ 195 public URL getOnlineResource() { 196 return onlineResource; 197 } 198 199 /** 200 * sets URL prefix for get HTTP request method. 201 * 202 */ 203 public void setOnlineResource( URL onlineResource ) { 204 this.onlineResource = onlineResource; 205 } 206 207 /** 208 * Returns informations who to contact for questions about the service. This method returns 209 * <tt>null</tt> if no contact informations are available. 210 * 211 */ 212 public ContactInformation getContactInformation() { 213 return contactInformation; 214 } 215 216 /** 217 * Sets informations who to contact for questions about the service. This method returns 218 * <tt>null</tt> if no contact informations are available. 219 * 220 */ 221 public void setContactInformation( ContactInformation contactInformation ) { 222 this.contactInformation = contactInformation; 223 } 224 225 /** 226 * Returns fees assigned to the service. If no fees defined "none" will be returned. 227 * 228 */ 229 public String getFees() { 230 return fees; 231 } 232 233 /** 234 * Sets fees assigned to the service. If no fees defined "none" will be returned. 235 * 236 */ 237 public void setFees( String fees ) { 238 this.fees = fees; 239 } 240 241 /** 242 * Returns access constraints assigned to the service. If no access constraints are defined 243 * "none" will be returned. 244 * 245 */ 246 public String getAccessConstraints() { 247 return accessConstraints; 248 } 249 250 /** 251 * Sets access constraints assigned to the service. If no access constraints are defined "none" 252 * will be returned. 253 * 254 */ 255 public void setAccessConstraints( String accessConstraints ) { 256 this.accessConstraints = accessConstraints; 257 } 258 259 }