001 // $HeadURL:
002 // /cvsroot/deegree/src/org/deegree/ogcwebservices/csw/configuration/CatalogConfiguration.java,v
003 // 1.6 2004/07/12 12:23:21 tf Exp $
004 /*----------------------------------------------------------------------------
005 This file is part of deegree, http://deegree.org/
006 Copyright (C) 2001-2009 by:
007 Department of Geography, University of Bonn
008 and
009 lat/lon GmbH
010
011 This library is free software; you can redistribute it and/or modify it under
012 the terms of the GNU Lesser General Public License as published by the Free
013 Software Foundation; either version 2.1 of the License, or (at your option)
014 any later version.
015 This library is distributed in the hope that it will be useful, but WITHOUT
016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
017 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
018 details.
019 You should have received a copy of the GNU Lesser General Public License
020 along with this library; if not, write to the Free Software Foundation, Inc.,
021 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
022
023 Contact information:
024
025 lat/lon GmbH
026 Aennchenstr. 19, 53177 Bonn
027 Germany
028 http://lat-lon.de/
029
030 Department of Geography, University of Bonn
031 Prof. Dr. Klaus Greve
032 Postfach 1147, 53001 Bonn
033 Germany
034 http://www.geographie.uni-bonn.de/deegree/
035
036 e-mail: info@deegree.org
037 ----------------------------------------------------------------------------*/
038
039 package org.deegree.ogcwebservices.csw.configuration;
040
041 import java.io.IOException;
042 import java.net.URL;
043
044 import org.deegree.framework.xml.InvalidConfigurationException;
045 import org.deegree.model.filterencoding.capabilities.FilterCapabilities;
046 import org.deegree.ogcwebservices.csw.capabilities.CatalogueCapabilities;
047 import org.deegree.ogcwebservices.csw.capabilities.EBRIMCapabilities;
048 import org.deegree.ogcwebservices.getcapabilities.Contents;
049 import org.deegree.ogcwebservices.getcapabilities.OperationsMetadata;
050 import org.deegree.ogcwebservices.getcapabilities.ServiceIdentification;
051 import org.deegree.ogcwebservices.getcapabilities.ServiceProvider;
052 import org.xml.sax.SAXException;
053
054 /**
055 * Represents the configuration for a deegree CSW 2.0 instance.
056 *
057 * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider </a>
058 * @author last edited by: $Author: mschneider $
059 *
060 * @version 2.0, $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18 Jun 2009) $
061 *
062 * @since 2.0
063 */
064 public class CatalogueConfiguration extends CatalogueCapabilities {
065
066 private static final long serialVersionUID = 8811280848785864001L;
067
068 private CatalogueDeegreeParams catalogDeegreeParams;
069
070 private URL systemId;
071
072 /**
073 * Creates a catalog configuration from an URL
074 *
075 * @param url
076 * @return the new instance
077 * @throws IOException
078 * @throws SAXException
079 * @throws InvalidConfigurationException
080 */
081 public static CatalogueConfiguration createConfiguration( URL url )
082 throws IOException, SAXException, InvalidConfigurationException {
083 CatalogueConfigurationDocument confDoc = new CatalogueConfigurationDocument();
084 confDoc.load( url );
085 CatalogueConfiguration configuration = confDoc.getConfiguration();
086 return configuration;
087 }
088
089 /**
090 * Generates a new CatalogConfiguration instance from the given parameters.
091 *
092 * @param version
093 * @param updateSequence
094 * Optional value of service metadata document version, value is increased whenever
095 * any change is made in complete service metadata document. The value must be
096 * character string type, not empty.
097 * @param serviceIdentification
098 * @param serviceProvider
099 * @param operationsMetadata
100 * @param contents
101 * @param filterCapabilities
102 * @param catalogDeegreeParams
103 * @param systemId
104 */
105 CatalogueConfiguration( String version, String updateSequence, ServiceIdentification serviceIdentification,
106 ServiceProvider serviceProvider, OperationsMetadata operationsMetadata, Contents contents,
107 FilterCapabilities filterCapabilities, CatalogueDeegreeParams catalogDeegreeParams,
108 URL systemId ) {
109 super( version, updateSequence, serviceIdentification, serviceProvider, operationsMetadata, contents,
110 filterCapabilities );
111 this.catalogDeegreeParams = catalogDeegreeParams;
112
113 this.systemId = systemId;
114
115 }
116
117 /**
118 * Generates a new CatalogConfiguration instance from the given parameters.
119 *
120 * @param version
121 * @param updateSequence
122 * Optional value of service metadata document version, value is increased whenever
123 * any change is made in complete service metadata document. The value must be
124 * character string type, not empty.
125 * @param serviceIdentification
126 * @param serviceProvider
127 * @param operationsMetadata
128 * @param contents
129 * @param filterCapabilities
130 * @param catalogDeegreeParams
131 * @param systemId
132 * @param ebrimCaps
133 * the specified ebrim extensions
134 */
135 CatalogueConfiguration( String version, String updateSequence, ServiceIdentification serviceIdentification,
136 ServiceProvider serviceProvider, OperationsMetadata operationsMetadata, Contents contents,
137 FilterCapabilities filterCapabilities, CatalogueDeegreeParams catalogDeegreeParams,
138 URL systemId, EBRIMCapabilities ebrimCaps ) {
139 super( version, updateSequence, serviceIdentification, serviceProvider, operationsMetadata, contents,
140 filterCapabilities, ebrimCaps );
141 this.catalogDeegreeParams = catalogDeegreeParams;
142
143 this.systemId = systemId;
144
145 }
146
147 /**
148 * Returns the <code>deegreeParams</code> -section of the configuration.
149 *
150 * @return the <code>deegreeParams</code> -section of the configuration.
151 */
152 public CatalogueDeegreeParams getDeegreeParams() {
153 return catalogDeegreeParams;
154 }
155
156 /**
157 * Sets the <code>deegreeParams</code> -section of the configuration.
158 *
159 * @param deegreeParams
160 */
161 public void setDeegreeParams( CatalogueDeegreeParams deegreeParams ) {
162 this.catalogDeegreeParams = deegreeParams;
163 }
164
165 /**
166 * @return a most important systemId, needed for almost everything
167 */
168 public URL getSystemId() {
169 return systemId;
170 }
171
172 }