summaryrefslogtreecommitdiffstats
path: root/petascope/src/petascope/wcs/server/exceptions/WCSException.java
diff options
context:
space:
mode:
authorConstantin <jucovschi@gmail.com>2010-06-02 20:09:42 +0200
committerConstantin <jucovschi@gmail.com>2010-06-02 20:09:42 +0200
commit40e12c6af9d05c3413efaf535c35c625b736cbb9 (patch)
tree6a9f6b86b55724e659ca270171496d82362de9cc /petascope/src/petascope/wcs/server/exceptions/WCSException.java
parentfcda34adb1c78d0929778e1324c873552d21ee1d (diff)
downloadrasdaman-upstream-40e12c6af9d05c3413efaf535c35c625b736cbb9.tar.gz
rasdaman-upstream-40e12c6af9d05c3413efaf535c35c625b736cbb9.tar.xz
rasdaman-upstream-40e12c6af9d05c3413efaf535c35c625b736cbb9.zip
preparing for joining with rasdaman open source
Diffstat (limited to 'petascope/src/petascope/wcs/server/exceptions/WCSException.java')
-rw-r--r--petascope/src/petascope/wcs/server/exceptions/WCSException.java148
1 files changed, 148 insertions, 0 deletions
diff --git a/petascope/src/petascope/wcs/server/exceptions/WCSException.java b/petascope/src/petascope/wcs/server/exceptions/WCSException.java
new file mode 100644
index 0000000..556cf03
--- /dev/null
+++ b/petascope/src/petascope/wcs/server/exceptions/WCSException.java
@@ -0,0 +1,148 @@
+/*
+ * 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.wcs.server.exceptions;
+
+//~--- non-JDK imports --------------------------------------------------------
+
+import net.opengis.ows.v_1_0_0.ExceptionReport;
+import net.opengis.ows.v_1_0_0.ExceptionType;
+
+//~--- JDK imports ------------------------------------------------------------
+
+import java.util.Arrays;
+import petascope.ConfigManager;
+
+/**
+ * Private Exception superclass for the WCS server.
+ * This class can return an error report, than can be marshalled into a
+ * WCS-standard compliant XML structure describing the error that has happened.
+ *
+ * @author Andrei Aiordachioaie
+ */
+public class WCSException extends Exception
+{
+// private static Logger LOG = LoggerFactory.getLogger(WCSException.class);
+
+ /*
+ private String[] errorCodes =
+ {
+ "MissingParameterValue", "InvalidParameterValue", "NoApplicableCode",
+ "UnsupportedCombination", "NotEnoughStorage",
+ "MaliciousQuery", "ActionNotSupported", "XmlStructuresError",
+ "BadResponseHandler", "MultiBandImagesNotSupported", "RasdamanUnavailable",
+ "ServletConnectionError", "XmlInputNotValid", "InvalidPropertyValue",
+ "InternalWcpsError", "InternalSqlError", "RasdamanRequestFailed",
+ "NodeParsingNotImplemented", "IOConnectionError", "InvalidTemporalMetadata",
+ "InvalidRequestString"
+ };
+ */
+ private ExceptionType item;
+ private ExceptionReport report;
+ private String errorCode;
+ private String errorDetail = "";
+
+ /**
+ * Default (minimal) constructor
+ * @param error Error Code
+ * @param detail Detailed message about the error
+ */
+ protected WCSException(String error, String detail)
+ {
+ super();
+ errorCode = error;
+ errorDetail = detail;
+
+ createReport();
+ }
+
+ /**
+ * Convenience Constructor
+ * @param error Error Code
+ * @param detail Detailed message about the error
+ * @param e The cause of the current exception.
+ */
+ protected WCSException(String error, String detail, Exception e)
+ {
+ super(e);
+ errorCode = error;
+ errorDetail = detail;
+ createReport();
+ }
+
+ private void createReport()
+ {
+ report = new ExceptionReport();
+ report.setLanguage(ConfigManager.WCST_LANGUAGE);
+ report.setVersion(ConfigManager.WCST_VERSION);
+
+ item = new ExceptionType();
+ item.setExceptionCode(errorCode);
+ item.setLocator(errorDetail);
+ report.getException().add(item);
+ }
+
+ /** Return the error code.
+ *
+ * @return
+ */
+ public String getErrorCode()
+ {
+ return errorCode;
+ }
+
+ /** Return the detailed error message.
+ *
+ * @return
+ */
+ public String getErrorDetail()
+ {
+ return errorDetail;
+ }
+
+ /**
+ * Retrieves a data structure that can be later marshalled into a XML
+ * "ExceptionReport" document.
+ * @return ExceptionReport object
+ */
+ public ExceptionReport getReport()
+ {
+ return report;
+ }
+
+ /**
+ * Adds text to this exception's detail message.
+ * @param msg
+ */
+ public void appendErrorDetail(String msg)
+ {
+ this.errorDetail += msg;
+ createReport();
+ }
+
+ @Override
+ public String getMessage()
+ {
+ return this.errorDetail;
+ }
+}