001 //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.3_testing/src/org/deegree/ogcwebservices/wms/capabilities/WMSOperationsMetadata.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.wms.capabilities;
037
038 import java.util.ArrayList;
039 import java.util.List;
040
041 import org.deegree.ogcwebservices.getcapabilities.Operation;
042 import org.deegree.ogcwebservices.getcapabilities.OperationsMetadata;
043 import org.deegree.owscommon.OWSDomainType;
044
045 /**
046 * Represents the <code>OperationMetadata</code> part in the capabilities
047 * document of a WFS according to the
048 * <code>Web Feature Service Implementation Specification 1.1.0</code>.
049 * <p>
050 * In addition to the <code>GetCapabilities</code> operation that all
051 * <code>OWS 0.3</code> compliant services must implement, it may define some
052 * or all of the following operations: <table border="1">
053 * <table>
054 * <tr>
055 * <td></td>
056 * <tr>
057 * </table>
058 *
059 *
060 * @see org.deegree.ogcwebservices.getcapabilities.OperationsMetadata
061 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth </a>
062 * @author last edited by: $Author: mschneider $
063 *
064 * @version 1.0. $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
065 *
066 * @since 2.0
067 */
068
069 public class WMSOperationsMetadata extends OperationsMetadata {
070
071 private static final long serialVersionUID = 3864454877736817781L;
072
073 /**
074 * The name of the GetMap operation.
075 */
076 public static final String GETMAP = "GetMap";
077
078 /**
079 * The name of the GetMap operation.
080 */
081 public static final String MAP = "Map";
082
083 /**
084 * The name of the GetFeatureInfo operation.
085 */
086 public static final String GETFEATUREINFO = "GetFeatureInfo";
087
088 /**
089 * The name of the GetFeatureInfo operation.
090 */
091 public static final String FEATUREINFO = "FeatureInfo";
092
093 /**
094 * The name of the DescribeLayer operation.
095 */
096 public static final String DESCRIBELAYER = "DescribeLayer";
097
098 /**
099 * The name of the GetLegendGraphic operation.
100 */
101 public static final String GETLEGENDGRAPHIC = "GetLegendGraphic";
102
103 /**
104 * The name of the GetStyles operation.
105 */
106 public static final String GETSTYLES = "GetStyles";
107
108 /**
109 * The name of the PutStyles operation.
110 */
111 public static final String PUTSTYLES = "PutStyles";
112
113 private Operation getMap;
114
115 private Operation getFeatureInfo;
116
117 private Operation describeLayer;
118
119 private Operation getLegendGraphic;
120
121 private Operation getStyles;
122
123 private Operation putStyles;
124
125 /**
126 * Constructs a new <code>WMSOperationsMetadata</code> instance from the
127 * given parameters.
128 *
129 * @param getCapabilities
130 * @param getMap
131 * @param getFeatureInfo
132 * @param describeLayer
133 * @param getLegendGraphic
134 * @param getStyles
135 * @param putStyles
136 * @param parameters
137 * @param constraints
138 */
139 public WMSOperationsMetadata(Operation getCapabilities, Operation getMap, Operation getFeatureInfo,
140 Operation describeLayer, Operation getLegendGraphic,
141 Operation getStyles, Operation putStyles,
142 OWSDomainType[] parameters, OWSDomainType[] constraints) {
143 super(getCapabilities, parameters, constraints);
144 this.getMap = getMap;
145 this.getFeatureInfo = getFeatureInfo;
146 this.getLegendGraphic = getLegendGraphic;
147 this.describeLayer = describeLayer;
148 this.getStyles = getStyles;
149 this.putStyles = putStyles;
150 }
151
152 /**
153 * @return all <code>Operations</code> known to the WFS.
154 *
155 */
156 @Override
157 public Operation[] getOperations() {
158 List<Operation> list = new ArrayList<Operation>(10);
159 list.add( getMap );
160 list.add( getCapabilitiesOperation );
161 if ( describeLayer != null ) {
162 list.add( describeLayer );
163 }
164 if ( getFeatureInfo != null ) {
165 list.add( getFeatureInfo );
166 }
167 if ( getStyles != null ) {
168 list.add( getStyles );
169 }
170 if ( putStyles != null ) {
171 list.add( putStyles );
172 }
173 if ( getLegendGraphic != null ) {
174 list.add( getLegendGraphic );
175 }
176 Operation[] ops = new Operation[list.size()];
177 return list.toArray( ops );
178 }
179
180 /**
181 * @return Returns the describeLayer.
182 */
183 public Operation getDescribeLayer() {
184 return describeLayer;
185 }
186
187 /**
188 * @param describeLayer The describeLayer to set.
189 */
190 public void setDescribeLayer( Operation describeLayer ) {
191 this.describeLayer = describeLayer;
192 }
193
194 /**
195 * @return Returns the getFeatureInfo.
196 */
197 public Operation getGetFeatureInfo() {
198 return getFeatureInfo;
199 }
200
201 /**
202 * @param getFeatureInfo The getFeatureInfo to set.
203 */
204 public void setGetFeatureInfo( Operation getFeatureInfo ) {
205 this.getFeatureInfo = getFeatureInfo;
206 }
207
208 /**
209 * @return Returns the getLegendGraphic.
210 */
211 public Operation getGetLegendGraphic() {
212 return getLegendGraphic;
213 }
214
215 /**
216 * @param getLegendGraphic The getLegendGraphic to set.
217 */
218 public void setGetLegendGraphic( Operation getLegendGraphic ) {
219 this.getLegendGraphic = getLegendGraphic;
220 }
221
222 /**
223 * @return Returns the getMap.
224 */
225 public Operation getGetMap() {
226 return getMap;
227 }
228
229 /**
230 * @param getMap The getMap to set.
231 */
232 public void setGetMap( Operation getMap ) {
233 this.getMap = getMap;
234 }
235
236 /**
237 * @return Returns the getStyles.
238 */
239 public Operation getGetStyles() {
240 return getStyles;
241 }
242
243 /**
244 * @param getStyles The getStyles to set.
245 */
246 public void setGetStyles( Operation getStyles ) {
247 this.getStyles = getStyles;
248 }
249
250 /**
251 * @return Returns the putStyles.
252 */
253 public Operation getPutStyles() {
254 return putStyles;
255 }
256
257 /**
258 * @param putStyles The putStyles to set.
259 */
260 public void setPutStyles( Operation putStyles ) {
261 this.putStyles = putStyles;
262 }
263
264 }