    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.wmps;
    039
    040    import java.net.URL;
    041
    042    import org.deegree.framework.log.ILogger;
    043    import org.deegree.framework.log.LoggerFactory;
    044    import org.deegree.ogcwebservices.wcs.configuration.InvalidConfigurationException;
    045    import org.deegree.ogcwebservices.wmps.configuration.WMPSConfiguration;
    046    import org.deegree.ogcwebservices.wmps.configuration.WMPSConfigurationDocument;
    047
    048    /**
    049     * Service Factory class handles the WMPService Instance.
    050     *
    051     * @author <a href="mailto:deshmukh@lat-lon.de">Anup Deshmukh</a>
    052     * @version 2.0
    053     */
    054    public final class WMPServiceFactory {
    055
    056        private static final ILogger LOG = LoggerFactory.getLogger( WMPServiceFactory.class );
    057
    058        private static WMPSConfiguration CONFIG;
    059
    060        /**
    061         * Returns a WMPService instance
    062         *
    063         * @return WMPService
    064         */
    065        public static WMPService getService() {
    066            return WMPServiceFactory.getInstance( CONFIG );
    067        }
    068
    069        /**
    070         * Returns a WMPService instance
    071         *
    072         * @param config
    073         * @return WMPService
    074         */
    075        public static WMPService getInstance( WMPSConfiguration config ) {
    076            return new WMPService( config );
    077        }
    078
    079        /**
    080         * Returns true/false depending on the initialized state of the instance.
    081         *
    082         * @return boolean
    083         */
    084        public static boolean isInitialized() {
    085            return CONFIG != null;
    086        }
    087
    088        /**
    089         * Sets the WMPSConfiguration
    090         *
    091         * @param wmpsConfiguration
    092         */
    093        public static void setConfiguration( WMPSConfiguration wmpsConfiguration ) {
    094            CONFIG = wmpsConfiguration;
    095            /**
    096             * if service instance are already created destroy all instances create new service
    097             * instances and put in pool
    098             */
    099            LOG.logInfo( CONFIG.getServiceIdentification().getTitle() + " (" + CONFIG.getVersion()
    100                         + ") service pool initialized." );
    101        }
    102
    103        /**
    104         * Sets the service configuration
    105         *
    106         * @param serviceConfigurationUrl
    107         * @throws InvalidConfigurationException
    108         */
    109        public static void setConfiguration( URL serviceConfigurationUrl )
    110                                throws InvalidConfigurationException {
    111
    112            try {
    113                WMPSConfigurationDocument doc = new WMPSConfigurationDocument();
    114                doc.load( serviceConfigurationUrl );
    115                WMPSConfiguration conf = doc.parseConfiguration();
    116                WMPServiceFactory.setConfiguration( conf );
    117            } catch ( Exception e ) {
    118                e.printStackTrace();
    119                throw new InvalidConfigurationException( "WPSServiceFactory", e.getMessage() );
    120            }
    121        }
    122    }