001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/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 17:22:25 +0100 (Do, 27 Dez 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, InvalidCapabilitiesException { 091 OGCCapabilities capabilities = null; 092 WFSCapabilitiesDocument capabilitiesDoc = new WFSCapabilitiesDocument(); 093 capabilitiesDoc.load( url ); 094 capabilities = capabilitiesDoc.parseCapabilities(); 095 return capabilities; 096 } 097 098 /** 099 * Generates a new WFSCapabilities instance from the given parameters. 100 * 101 * @param version 102 * @param updateSequence 103 * @param serviceIdentification 104 * @param serviceProvider 105 * @param operationsMetadata 106 * @param featureTypeList 107 * @param servesGMLObjectTypeList 108 * @param supportsGMLObjectTypeList 109 * @param contents 110 * TODO field not verified! Check spec. 111 * @param filterCapabilities 112 */ 113 public WFSCapabilities( String version, String updateSequence, 114 ServiceIdentification serviceIdentification, 115 ServiceProvider serviceProvider, OperationsMetadata operationsMetadata, 116 FeatureTypeList featureTypeList, GMLObject[] servesGMLObjectTypeList, 117 GMLObject[] supportsGMLObjectTypeList, Contents contents, 118 FilterCapabilities filterCapabilities ) { 119 super( version, updateSequence, serviceIdentification, serviceProvider, operationsMetadata, 120 contents ); 121 this.featureTypeList = featureTypeList; 122 this.servesGMLObjectTypeList = servesGMLObjectTypeList; 123 this.supportsGMLObjectTypeList = supportsGMLObjectTypeList; 124 this.filterCapabilities = filterCapabilities; 125 } 126 127 /** 128 * Returns the FilterCapabilites section of the capabilities. 129 * 130 * @return the FilterCapabilites section of the capabilities. 131 * 132 */ 133 public FilterCapabilities getFilterCapabilities() { 134 return filterCapabilities; 135 } 136 137 /** 138 * @return Returns the featureTypeList. 139 */ 140 public FeatureTypeList getFeatureTypeList() { 141 return this.featureTypeList; 142 } 143 144 /** 145 * @param featureTypeList 146 * The featureTypeList to set. 147 */ 148 public void setFeatureTypeList( FeatureTypeList featureTypeList ) { 149 this.featureTypeList = featureTypeList; 150 } 151 152 /** 153 * @return Returns the servesGMLObjectTypeList. 154 */ 155 public GMLObject[] getServesGMLObjectTypeList() { 156 return servesGMLObjectTypeList; 157 } 158 159 /** 160 * @param servesGMLObjectTypeList 161 * The servesGMLObjectTypeList to set. 162 */ 163 public void setServesGMLObjectTypeList( GMLObject[] servesGMLObjectTypeList ) { 164 this.servesGMLObjectTypeList = servesGMLObjectTypeList; 165 } 166 167 /** 168 * @return Returns the supportsGMLObjectTypeList. 169 */ 170 public GMLObject[] getSupportsGMLObjectTypeList() { 171 return supportsGMLObjectTypeList; 172 } 173 174 /** 175 * @param supportsGMLObjectTypeList 176 * The supportsGMLObjectTypeList to set. 177 */ 178 public void setSupportsGMLObjectTypeList( GMLObject[] supportsGMLObjectTypeList ) { 179 this.supportsGMLObjectTypeList = supportsGMLObjectTypeList; 180 } 181 }