summaryrefslogtreecommitdiffstats
path: root/petascope/src/petascope/wcs2/server/Wcs2Server.java
diff options
context:
space:
mode:
Diffstat (limited to 'petascope/src/petascope/wcs2/server/Wcs2Server.java')
-rw-r--r--petascope/src/petascope/wcs2/server/Wcs2Server.java119
1 files changed, 119 insertions, 0 deletions
diff --git a/petascope/src/petascope/wcs2/server/Wcs2Server.java b/petascope/src/petascope/wcs2/server/Wcs2Server.java
new file mode 100644
index 0000000..f7d11eb
--- /dev/null
+++ b/petascope/src/petascope/wcs2/server/Wcs2Server.java
@@ -0,0 +1,119 @@
+/*
+ * This file is part of PetaScope.
+ *
+ * PetaScope is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of
+ * the License, or (at your option) any later version.
+ *
+ * PetaScope is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with PetaScope. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * For more information please see <http://www.PetaScope.org>
+ * or contact Peter Baumann via <baumann@rasdaman.com>.
+ *
+ * Copyright 2009 Jacobs University Bremen, Peter Baumann.
+ */
+package petascope.wcs2.server;
+
+//~--- non-JDK imports --------------------------------------------------------
+import javax.servlet.ServletException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import petascope.ConfigManager;
+
+import petascope.wcps.server.core.DbMetadataSource;
+
+import petascope.wcs.server.exceptions.WCSException;
+
+import petascope.wcs2.server.ops.DescribeCoverage;
+import petascope.wcs2.server.ops.GetCapabilities;
+import petascope.wcs2.server.ops.GetCoverage;
+
+//~--- JDK imports ------------------------------------------------------------
+/**
+ * The Web Coverage Service (WcsServer)
+ * This class provides methods for each of the WCS operations:
+ * - GetCapabilities
+ * - DescribeCoverage
+ * - GetCoverage
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class Wcs2Server {
+
+ private static Logger LOG = LoggerFactory.getLogger(Wcs2Server.class);
+
+ /* The Operations to delegate to */
+ private GetCapabilities capa;
+ private DescribeCoverage desc;
+ private GetCoverage getcov;
+
+ /* Globals */
+ private DbMetadataSource meta;
+
+ /**
+ * constructor
+ * @param settingsPath path to the "settings.properties" file
+ */
+ public Wcs2Server(String settingsPath, DbMetadataSource source) throws ServletException {
+ ConfigManager.getInstance(settingsPath, null);
+ meta = source;
+
+ try {
+ capa = new GetCapabilities(meta);
+ desc = new DescribeCoverage(meta);
+ getcov = new GetCoverage(meta);
+ } catch (Exception e) {
+ LOG.error("Could not init WCS 2.0");
+
+ throw new RuntimeException("Could not initialize WCS 2.0", e);
+ }
+ }
+
+ /**
+ * WcsServer GetCapabilities operation
+ */
+ public String GetCapabilities(String stringXml) throws WCSException {
+ LOG.trace("Received input:\n{}", stringXml);
+ LOG.info("Executing operation GetCapabilities...");
+ String result = capa.execute(stringXml);
+
+ LOG.info("GetCapabilities finished");
+
+ return result;
+ }
+
+ /**
+ * WcsServer DescribeCoverage operation
+ */
+ public String DescribeCoverage(String stringXml) throws WCSException {
+ LOG.trace("Received input:\n{}", stringXml);
+ LOG.info("Executing operation DescribeCoverage...");
+ String result = desc.execute(stringXml);
+
+ LOG.info("DescribeCoverage finished");
+
+ return result;
+ }
+
+ /**
+ * WcsServer GetCoverage operation
+ */
+ public String GetCoverage(String stringXml) throws WCSException {
+ LOG.trace("Received input:\n{}", stringXml);
+ LOG.info("Executing operation GetCoverage...");
+ String result = getcov.execute(stringXml);
+
+ LOG.info("GetCoverage finished");
+
+ return result;
+ }
+}