001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/ogcwebservices/wmps/capabilities/WMPSCapabilities.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.wmps.capabilities;
045:
046: import org.deegree.ogcwebservices.getcapabilities.OGCCapabilities;
047: import org.deegree.ogcwebservices.getcapabilities.OperationsMetadata;
048: import org.deegree.ogcwebservices.getcapabilities.ServiceIdentification;
049: import org.deegree.ogcwebservices.getcapabilities.ServiceProvider;
050: import org.deegree.ogcwebservices.wms.capabilities.Layer;
051: import org.deegree.ogcwebservices.wms.capabilities.UserDefinedSymbolization;
052:
053: /**
054: * The purpose of the GetCapabilities operation is described in the Basic Capabilities Service
055: * Elements section, above. In the particular case of a Web Map Print Service Capabilities Service,
056: * the response of a GetCapabilities request is general information about the service itself and
057: * specific information about the available maps.
058: *
059: * The available output formats and the online resource are listed for each operation offered by the
060: * server,
061: * <p>
062: * ----------------------------------------------------------------------
063: * </p>
064: *
065: * @author <a href="mailto:deshmukh@lat-lon.de">Anup Deshmukh</a>
066: * @version 2.0
067: */
068: public class WMPSCapabilities extends OGCCapabilities {
069:
070: private static final long serialVersionUID = -5173204173366244735L;
071:
072: private ServiceIdentification serviceIdentification;
073:
074: private ServiceProvider serviceProvider;
075:
076: private OperationsMetadata operationMetadata;
077:
078: private UserDefinedSymbolization userDefinedSymbolization;
079:
080: private Layer layer;
081:
082: /**
083: * Constructor initializing the class with the <code>WMPSCapabilities</code>
084: *
085: * @param version
086: * @param serviceIdentification
087: * @param serviceProvider
088: * @param userDefinedSymbolization
089: * @param metadata
090: * @param layer
091: */
092: protected WMPSCapabilities(String version,
093: ServiceIdentification serviceIdentification,
094: ServiceProvider serviceProvider,
095: UserDefinedSymbolization userDefinedSymbolization,
096: OperationsMetadata metadata, Layer layer) {
097: super (version, null);
098: setServiceProvider(serviceProvider);
099: setServiceIdentification(serviceIdentification);
100: setUserDefinedSymbolization(userDefinedSymbolization);
101: setOperationMetadata(metadata);
102: setLayer(layer);
103: }
104:
105: /**
106: * returns the service description section
107: *
108: * @return ServiceIdentification
109: */
110: public ServiceIdentification getServiceIdentification() {
111: return this .serviceIdentification;
112: }
113:
114: /**
115: * the service description section
116: *
117: * @param serviceIdentification
118: */
119: public void setServiceIdentification(
120: ServiceIdentification serviceIdentification) {
121: this .serviceIdentification = serviceIdentification;
122: }
123:
124: /**
125: * returns the root layer provided by a WMPS
126: *
127: * @return Layer
128: */
129: public Layer getLayer() {
130: return this .layer;
131: }
132:
133: /**
134: * recursion over all layers to find the layer that matches the submitted name. If no layer can
135: * be found that fullfills the condition <tt>null</tt> will be returned.
136: *
137: * @param name
138: * @return Layer
139: */
140: public Layer getLayer(String name) {
141: Layer lay = null;
142:
143: if (name.equals(this .layer.getName())) {
144: lay = this .layer;
145: } else {
146: lay = getLayer(name, this .layer.getLayer());
147: }
148:
149: return lay;
150: }
151:
152: /**
153: * returns the layer provided by a WMPS for the submitted name. If not found null will be
154: * returned.
155: *
156: * @param name
157: * name of the layer to be found
158: * @param layers
159: * list of searchable layers
160: *
161: * @return a layer object or <tt>null</tt>
162: */
163: private Layer getLayer(String name, Layer[] layers) {
164: Layer lay = null;
165:
166: if (layers != null) {
167: for (int i = 0; i < layers.length; i++) {
168: if (name.equals(layers[i].getName())) {
169: lay = layers[i];
170: break;
171: }
172: lay = getLayer(name, layers[i].getLayer());
173: if (lay != null)
174: break;
175: }
176: }
177:
178: return lay;
179: }
180:
181: /**
182: * sets the root layer provided by a WMPS
183: *
184: * @param layer
185: */
186: public void setLayer(Layer layer) {
187: this .layer = layer;
188: }
189:
190: /**
191: * returns metadata about the offered access methods like PrintMap or GetCapabiliites
192: *
193: * @return OperationsMetadata
194: */
195: public OperationsMetadata getOperationMetadata() {
196: return this .operationMetadata;
197: }
198:
199: /**
200: * sets metadata for the offered access methods like PrintMap or GetCapabiliites
201: *
202: * @param operationMetadata
203: */
204: public void setOperationMetadata(
205: OperationsMetadata operationMetadata) {
206: this .operationMetadata = operationMetadata;
207: }
208:
209: /**
210: * returns informations about the provider of a WMPS
211: *
212: * @return ServiceProvider
213: */
214: public ServiceProvider getServiceProvider() {
215: return this .serviceProvider;
216: }
217:
218: /**
219: * sets informations about the provider of a WMPS
220: *
221: * @param serviceProvider
222: */
223: public void setServiceProvider(ServiceProvider serviceProvider) {
224: this .serviceProvider = serviceProvider;
225: }
226:
227: public UserDefinedSymbolization getUserDefinedSymbolization() {
228: return this .userDefinedSymbolization;
229: }
230:
231: public void setUserDefinedSymbolization(
232: UserDefinedSymbolization userDefinedSymbolization) {
233: this.userDefinedSymbolization = userDefinedSymbolization;
234: }
235: }
|