001 // $HeadURL: svn+ssh://jwilden@svn.wald.intevation.org/deegree/base/branches/2.5_testing/src/org/deegree/ogcwebservices/getcapabilities/ServiceIdentification.java $ 002 /*---------------------------------------------------------------------------- 003 This file is part of deegree, http://deegree.org/ 004 Copyright (C) 2001-2009 by: 005 Department of Geography, University of Bonn 006 and 007 lat/lon GmbH 008 009 This library is free software; you can redistribute it and/or modify it under 010 the terms of the GNU Lesser General Public License as published by the Free 011 Software Foundation; either version 2.1 of the License, or (at your option) 012 any later version. 013 This library is distributed in the hope that it will be useful, but WITHOUT 014 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 015 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 016 details. 017 You should have received a copy of the GNU Lesser General Public License 018 along with this library; if not, write to the Free Software Foundation, Inc., 019 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 020 021 Contact information: 022 023 lat/lon GmbH 024 Aennchenstr. 19, 53177 Bonn 025 Germany 026 http://lat-lon.de/ 027 028 Department of Geography, University of Bonn 029 Prof. Dr. Klaus Greve 030 Postfach 1147, 53001 Bonn 031 Germany 032 http://www.geographie.uni-bonn.de/deegree/ 033 034 e-mail: info@deegree.org 035 ----------------------------------------------------------------------------*/ 036 package org.deegree.ogcwebservices.getcapabilities; 037 038 import org.deegree.datatypes.Code; 039 import org.deegree.model.metadata.iso19115.Keywords; 040 041 /** 042 * Represents the <code>ServiceIdentification</code> section of the capabilities of an OGC 043 * compliant web service according to the <code>OGC Common Implementation Specification 0.2</code>. 044 * This section corresponds to and expands the SV_ServiceIdentification class in ISO 19119. 045 * <p> 046 * It consists of the following elements: <table border="1"> 047 * <tr> 048 * <th>Name</th> 049 * <th>Occurences</th> 050 * <th>Function</th> 051 * </tr> 052 * <tr> 053 * <td>ServiceType</td> 054 * <td align="center">1</td> 055 * <td>Useful to provide service type name useful for machine-to-machine communication</td> 056 * </tr> 057 * <tr> 058 * <td>ServiceTypeVersion</td> 059 * <td align="center">1-*</td> 060 * <td>Useful to provide list of server-supported versions.</td> 061 * </tr> 062 * <tr> 063 * <td>Title</td> 064 * <td align="center">1</td> 065 * <td>Useful to provide a server title for display to a human.</td> 066 * </tr> 067 * <tr> 068 * <td>Abstract</td> 069 * <td align="center">0|1</td> 070 * <td>Usually useful to provide narrative description of server, useful for display to a human.</td> 071 * </tr> 072 * <tr> 073 * <td>Keywords</td> 074 * <td align="center">0-*</td> 075 * <td>Often useful to provide keywords useful for server searching.</td> 076 * </tr> 077 * <tr> 078 * <td>Fees</td> 079 * <td align="center">0|1</td> 080 * <td>Usually useful to specify fees, or NONE if no fees.</td> 081 * </tr> 082 * <tr> 083 * <td>AccessConstraints</td> 084 * <td align="center">0-*</td> 085 * <td>Usually useful to specify access constraints, or NONE if no access constraints.</td> 086 * </tr> 087 * </table> 088 * 089 * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider </a> 090 * @author last edited by: $Author: mschneider $ 091 * 092 * @version $Revision: 18195 $ 093 */ 094 public class ServiceIdentification { 095 096 private String name; 097 098 private Code serviceType; 099 100 private String[] serviceTypeVersions; 101 102 private String title; 103 104 private String serviceAbstract; 105 106 private Keywords[] keywords; 107 108 private String fees; 109 110 private String[] accessConstraints; 111 112 /** 113 * Constructs a new ServiceIdentification object. 114 * 115 * @param name 116 * 117 * @param serviceType 118 * @param serviceTypeVersions 119 * @param title 120 * @param serviceAbstract 121 * may be null 122 * @param keywords 123 * may be an empty array or null 124 * @param fees 125 * may be null 126 * @param accessConstraints 127 * may be an empty array or null 128 */ 129 public ServiceIdentification( String name, Code serviceType, String[] serviceTypeVersions, String title, 130 String serviceAbstract, Keywords[] keywords, String fees, String[] accessConstraints ) { 131 this.name = name; 132 this.serviceType = serviceType; 133 this.serviceTypeVersions = serviceTypeVersions; 134 this.title = title; 135 this.serviceAbstract = serviceAbstract; 136 this.keywords = keywords; 137 this.fees = fees; 138 this.accessConstraints = accessConstraints; 139 } 140 141 /** 142 * Constructs a new ServiceIdentification object. 143 * 144 * @param serviceType 145 * @param serviceTypeVersions 146 * @param title 147 * @param serviceAbstract 148 * may be null 149 * @param keywords 150 * may be an empty array or null 151 * @param fees 152 * may be null 153 * @param accessConstraints 154 * may be an empty array or null 155 */ 156 public ServiceIdentification( Code serviceType, String[] serviceTypeVersions, String title, String serviceAbstract, 157 Keywords[] keywords, String fees, String[] accessConstraints ) { 158 this.name = title; 159 this.serviceType = serviceType; 160 this.serviceTypeVersions = serviceTypeVersions; 161 this.title = title; 162 this.serviceAbstract = serviceAbstract; 163 this.keywords = keywords; 164 this.fees = fees; 165 this.accessConstraints = accessConstraints; 166 } 167 168 /** 169 * Returns the java representation of the ServiceType-element. In the XML document, this element 170 * has the type ows:CodeType. 171 * 172 * @return the java representation of the ServiceType-element. In the XML document, this element 173 * has the type ows:CodeType. 174 * 175 */ 176 public Code getServiceType() { 177 return serviceType; 178 } 179 180 /** 181 * Returns the java representation of the ServiceTypeVersion-elements. In the XML document, 182 * these elements have the type ows:VersionType. 183 * 184 * @return the java representation of the ServiceTypeVersion-elements. In the XML document, 185 * these elements have the type ows:VersionType. 186 */ 187 public String[] getServiceTypeVersions() { 188 return serviceTypeVersions; 189 } 190 191 /** 192 * Returns the java representation of the Title-element. In the XML document, this element has 193 * the type string. 194 * 195 * @return the java representation of the Title-element. In the XML document, this element has 196 * the type string. 197 */ 198 public String getTitle() { 199 return title; 200 } 201 202 /** 203 * Returns the java representation of the Abstract-element. In the XML document, this element 204 * has the type string. 205 * 206 * @return the java representation of the Abstract-element. In the XML document, this element 207 * has the type string. 208 */ 209 public String getAbstract() { 210 return serviceAbstract; 211 } 212 213 /** 214 * Returns the java representation of the Keywords-elements. In the XML document, these elements 215 * have the type ows:Keyword. 216 * 217 * @return the java representation of the Keywords-elements. In the XML document, these elements 218 * have the type ows:Keyword. 219 */ 220 public Keywords[] getKeywords() { 221 return keywords; 222 } 223 224 /** 225 * Returns the java representation of the AccessConstraints-elements. In the XML document, these 226 * elements have the type string. 227 * 228 * @return the java representation of the AccessConstraints-elements. In the XML document, these 229 * elements have the type string. 230 */ 231 public String getFees() { 232 return fees; 233 } 234 235 /** 236 * Returns the java representation of the AccessConstraints-elements. In the XML document, these 237 * elements have the type string. 238 * 239 * @return the java representation of the AccessConstraints-elements. In the XML document, these 240 * elements have the type string. 241 */ 242 public String[] getAccessConstraints() { 243 return accessConstraints; 244 } 245 246 /** 247 * @return Returns the name. 248 */ 249 public String getName() { 250 return name; 251 } 252 253 }