diff options
author | Constantin <jucovschi@gmail.com> | 2010-06-02 20:09:42 +0200 |
---|---|---|
committer | Constantin <jucovschi@gmail.com> | 2010-06-02 20:09:42 +0200 |
commit | 40e12c6af9d05c3413efaf535c35c625b736cbb9 (patch) | |
tree | 6a9f6b86b55724e659ca270171496d82362de9cc /petascope/src/petascope/wcs/server/exceptions/WCSException.java | |
parent | fcda34adb1c78d0929778e1324c873552d21ee1d (diff) | |
download | rasdaman-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.java | 148 |
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; + } +} |