    001    // $HeadURL:
    002    // /cvsroot/deegree/src/org/deegree/ogcwebservices/wcs/WCSServiceFactory.java,v
    003    // 1.4 2004/06/18 15:50:30 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    package org.deegree.ogcwebservices.wcs;
    039
    040    import java.io.IOException;
    041    import java.net.URL;
    042
    043    import org.deegree.framework.log.ILogger;
    044    import org.deegree.framework.log.LoggerFactory;
    045    import org.deegree.framework.util.StringTools;
    046    import org.deegree.ogcwebservices.getcapabilities.InvalidCapabilitiesException;
    047    import org.deegree.ogcwebservices.wcs.configuration.InvalidConfigurationException;
    048    import org.deegree.ogcwebservices.wcs.configuration.WCSConfiguration;
    049    import org.xml.sax.SAXException;
    050
    051    /**
    052     * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
    053     * @author last edited by: $Author: mschneider $
    054     *
    055     * @version $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
    056     *
    057     * @todo Usage of org.deegree.ogcwebservices.OGCServiceFactory OGC service factory
    058     */
    059
    060    public final class WCServiceFactory {
    061
    062        private static WCSConfiguration CONFIG;
    063
    064        private static final ILogger LOG = LoggerFactory.getLogger( WCServiceFactory.class );
    065
    066        private WCServiceFactory() {
    067            // private constructor
    068        }
    069
    070        /**
    071         *
    072         * @param config
    073         * @return a new WCSService instance
    074         */
    075        public static WCService getInstance( WCSConfiguration config ) {
    076            return new WCService( config );
    077        }
    078
    079        /**
    080         *
    081         * @param wcsConfiguration
    082         */
    083        public static void setConfiguration( WCSConfiguration wcsConfiguration ) {
    084            CONFIG = wcsConfiguration;
    085            // if service instance are already created
    086            // destroy all instances
    087            // create new service instances and put in pool
    088            LOG.logInfo( StringTools.concat( 200, CONFIG.getService().getName(), " (", CONFIG.getVersion(),
    089                                             ") service pool initialized." ) );
    090        }
    091
    092        /**
    093         *
    094         * @param serviceConfigurationUrl
    095         * @throws InvalidConfigurationException
    096         */
    097        public static void setConfiguration( URL serviceConfigurationUrl )
    098                                throws InvalidConfigurationException {
    099            try {
    100                WCServiceFactory.setConfiguration( WCSConfiguration.create( serviceConfigurationUrl ) );
    101            } catch ( InvalidCapabilitiesException e ) {
    102                LOG.logError( e.getMessage(), e );
    103                throw new InvalidConfigurationException( "WCSServiceFactory", e.getMessage() );
    104            } catch ( IOException e ) {
    105                LOG.logError( e.getMessage(), e );
    106                throw new InvalidConfigurationException( "WCSServiceFactory", e.getMessage() );
    107            } catch ( SAXException e ) {
    108                LOG.logError( e.getMessage(), e );
    109                throw new InvalidConfigurationException( "WCSServiceFactory", e.getMessage() );
    110            }
    111
    112        }
    113
    114        /**
    115         *
    116         * @return service with default configuration (see {@link #setConfiguration(WCSConfiguration)})
    117         * @todo
    118         */
    119        public static WCService getService() {
    120            return WCServiceFactory.getInstance( CONFIG );
    121        }
    122
    123    }