001: //$HeadURL: $
002: /*---------------- FILE HEADER ------------------------------------------
003: This file is part of deegree.
004: Copyright (C) 2001-2008 by:
005: Department of Geography, University of Bonn
006: http://www.giub.uni-bonn.de/deegree/
007: lat/lon GmbH
008: http://www.lat-lon.de
009:
010: This library is free software; you can redistribute it and/or
011: modify it under the terms of the GNU Lesser General Public
012: License as published by the Free Software Foundation; either
013: version 2.1 of the License, or (at your option) any later version.
014: This library is distributed in the hope that it will be useful,
015: but WITHOUT ANY WARRANTY; without even the implied warranty of
016: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: Lesser General Public License for more details.
018: You should have received a copy of the GNU Lesser General Public
019: License along with this library; if not, write to the Free Software
020: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
021: Contact:
022:
023: Andreas Poth
024: lat/lon GmbH
025: Aennchenstr. 19
026: 53177 Bonn
027: Germany
028: E-Mail: poth@lat-lon.de
029:
030: Prof. Dr. Klaus Greve
031: Department of Geography
032: University of Bonn
033: Meckenheimer Allee 166
034: 53115 Bonn
035: Germany
036: E-Mail: greve@giub.uni-bonn.de
037: ---------------------------------------------------------------------------*/
038:
039: package org.deegree.ogcwebservices.wcts;
040:
041: import java.io.IOException;
042: import java.net.URL;
043:
044: import org.deegree.framework.log.ILogger;
045: import org.deegree.framework.log.LoggerFactory;
046: import org.deegree.ogcbase.ExceptionCode;
047: import org.deegree.ogcwebservices.OGCWebServiceException;
048: import org.deegree.ogcwebservices.getcapabilities.InvalidCapabilitiesException;
049: import org.deegree.ogcwebservices.wcts.configuration.WCTSConfiguration;
050: import org.deegree.ogcwebservices.wcts.configuration.WCTSConfigurationDocument;
051: import org.xml.sax.SAXException;
052:
053: /**
054: * <code>WCTServiceFactory</code> a convenience class to create and receive a {@link WCTSConfiguration} instance.
055: *
056: * @author <a href="mailto:bezema@lat-lon.de">Rutger Bezema</a>
057: *
058: * @author last edited by: $Author:$
059: *
060: * @version $Revision:$, $Date:$
061: *
062: */
063: public class WCTServiceFactory {
064: private static ILogger LOG = LoggerFactory
065: .getLogger(WCTServiceFactory.class);
066:
067: private static WCTSConfiguration CONFIG;
068:
069: private WCTServiceFactory() {
070: // do nottin
071: }
072:
073: /**
074: * @param configURL
075: * to read the configuration from.
076: */
077: public static synchronized void setConfiguration(URL configURL) {
078: if (configURL != null) {
079: try {
080: WCTSConfigurationDocument doc = new WCTSConfigurationDocument(
081: configURL);
082: CONFIG = doc.parseConfiguration();
083: } catch (IOException e) {
084: LOG.logError(e.getMessage(), e);
085: } catch (SAXException e) {
086: LOG.logError(e.getMessage(), e);
087: } catch (InvalidCapabilitiesException e) {
088: LOG.logError(e.getMessage(), e);
089: }
090: }
091: }
092:
093: /**
094: * @return the configuration
095: * @throws OGCWebServiceException
096: * if no configuration has been created yet.
097: */
098: public static synchronized WCTSConfiguration getConfiguration()
099: throws OGCWebServiceException {
100: if (CONFIG == null) {
101: throw new OGCWebServiceException(
102: "Configuration has not been initialized yet",
103: ExceptionCode.INTERNAL_SERVER_ERROR);
104: }
105: return CONFIG;
106: }
107:
108: /**
109: *
110: * @return a new {@link WCTService} instance.
111: * @throws OGCWebServiceException if the configuration was not initialized yet.
112: */
113: public static synchronized WCTService createServiceInstance()
114: throws OGCWebServiceException {
115: if (CONFIG == null) {
116: throw new OGCWebServiceException(
117: "Configuration has not been initialized yet",
118: ExceptionCode.INTERNAL_SERVER_ERROR);
119: }
120: return new WCTService(CONFIG);
121: }
122:
123: }
|