001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/ogcwebservices/wfs/capabilities/WFSCapabilities.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.wfs.capabilities;
045:
046: import java.io.IOException;
047: import java.net.URL;
048:
049: import org.deegree.model.filterencoding.capabilities.FilterCapabilities;
050: import org.deegree.ogcwebservices.getcapabilities.Contents;
051: import org.deegree.ogcwebservices.getcapabilities.InvalidCapabilitiesException;
052: import org.deegree.ogcwebservices.getcapabilities.OGCCapabilities;
053: import org.deegree.ogcwebservices.getcapabilities.OperationsMetadata;
054: import org.deegree.ogcwebservices.getcapabilities.ServiceIdentification;
055: import org.deegree.ogcwebservices.getcapabilities.ServiceProvider;
056: import org.deegree.owscommon.OWSCommonCapabilities;
057: import org.xml.sax.SAXException;
058:
059: /**
060: * Represents the capabilities of an OGC-WFS 1.1.0 compliant service instance.
061: *
062: * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider </a>
063: * @author last edited by: $Author: apoth $
064: *
065: * @version $Revision: 9345 $, $Date: 2007-12-27 08:22:25 -0800 (Thu, 27 Dec 2007) $
066: */
067: public class WFSCapabilities extends OWSCommonCapabilities {
068:
069: private static final long serialVersionUID = -8126209663124432256L;
070:
071: private FeatureTypeList featureTypeList;
072:
073: private GMLObject[] servesGMLObjectTypeList;
074:
075: private GMLObject[] supportsGMLObjectTypeList;
076:
077: private FilterCapabilities filterCapabilities;
078:
079: /**
080: * Creates WFSCapabilities from a URL.
081: *
082: * @param url
083: * location of the capabilities file
084: * @return catalog capabilities
085: * @throws IOException
086: * @throws SAXException
087: * @throws InvalidCapabilitiesException
088: */
089: public static OGCCapabilities createCapabilities(URL url)
090: throws IOException, SAXException,
091: InvalidCapabilitiesException {
092: OGCCapabilities capabilities = null;
093: WFSCapabilitiesDocument capabilitiesDoc = new WFSCapabilitiesDocument();
094: capabilitiesDoc.load(url);
095: capabilities = capabilitiesDoc.parseCapabilities();
096: return capabilities;
097: }
098:
099: /**
100: * Generates a new WFSCapabilities instance from the given parameters.
101: *
102: * @param version
103: * @param updateSequence
104: * @param serviceIdentification
105: * @param serviceProvider
106: * @param operationsMetadata
107: * @param featureTypeList
108: * @param servesGMLObjectTypeList
109: * @param supportsGMLObjectTypeList
110: * @param contents
111: * TODO field not verified! Check spec.
112: * @param filterCapabilities
113: */
114: public WFSCapabilities(String version, String updateSequence,
115: ServiceIdentification serviceIdentification,
116: ServiceProvider serviceProvider,
117: OperationsMetadata operationsMetadata,
118: FeatureTypeList featureTypeList,
119: GMLObject[] servesGMLObjectTypeList,
120: GMLObject[] supportsGMLObjectTypeList, Contents contents,
121: FilterCapabilities filterCapabilities) {
122: super (version, updateSequence, serviceIdentification,
123: serviceProvider, operationsMetadata, contents);
124: this .featureTypeList = featureTypeList;
125: this .servesGMLObjectTypeList = servesGMLObjectTypeList;
126: this .supportsGMLObjectTypeList = supportsGMLObjectTypeList;
127: this .filterCapabilities = filterCapabilities;
128: }
129:
130: /**
131: * Returns the FilterCapabilites section of the capabilities.
132: *
133: * @return the FilterCapabilites section of the capabilities.
134: *
135: */
136: public FilterCapabilities getFilterCapabilities() {
137: return filterCapabilities;
138: }
139:
140: /**
141: * @return Returns the featureTypeList.
142: */
143: public FeatureTypeList getFeatureTypeList() {
144: return this .featureTypeList;
145: }
146:
147: /**
148: * @param featureTypeList
149: * The featureTypeList to set.
150: */
151: public void setFeatureTypeList(FeatureTypeList featureTypeList) {
152: this .featureTypeList = featureTypeList;
153: }
154:
155: /**
156: * @return Returns the servesGMLObjectTypeList.
157: */
158: public GMLObject[] getServesGMLObjectTypeList() {
159: return servesGMLObjectTypeList;
160: }
161:
162: /**
163: * @param servesGMLObjectTypeList
164: * The servesGMLObjectTypeList to set.
165: */
166: public void setServesGMLObjectTypeList(
167: GMLObject[] servesGMLObjectTypeList) {
168: this .servesGMLObjectTypeList = servesGMLObjectTypeList;
169: }
170:
171: /**
172: * @return Returns the supportsGMLObjectTypeList.
173: */
174: public GMLObject[] getSupportsGMLObjectTypeList() {
175: return supportsGMLObjectTypeList;
176: }
177:
178: /**
179: * @param supportsGMLObjectTypeList
180: * The supportsGMLObjectTypeList to set.
181: */
182: public void setSupportsGMLObjectTypeList(
183: GMLObject[] supportsGMLObjectTypeList) {
184: this.supportsGMLObjectTypeList = supportsGMLObjectTypeList;
185: }
186: }
|