    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    }