001: // $HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/ogcwebservices/OGCWebServiceException.java $
002: /*---------------- FILE HEADER ------------------------------------------
003:
004: This file is part of deegree.
005: Copyright (C) 2001-2008 by:
006: EXSE, Department of Geography, University of Bonn
007: http://www.giub.uni-bonn.de/deegree/
008: lat/lon GmbH
009: http://www.lat-lon.de
010:
011: This library is free software; you can redistribute it and/or
012: modify it under the terms of the GNU Lesser General Public
013: License as published by the Free Software Foundation; either
014: version 2.1 of the License, or (at your option) any later version.
015:
016: This library is distributed in the hope that it will be useful,
017: but WITHOUT ANY WARRANTY; without even the implied warranty of
018: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: Lesser General Public License for more details.
020:
021: You should have received a copy of the GNU Lesser General Public
022: License along with this library; if not, write to the Free Software
023: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024:
025: Contact:
026:
027: Andreas Poth
028: lat/lon GmbH
029: Aennchenstr. 19
030: 53115 Bonn
031: Germany
032: E-Mail: poth@lat-lon.de
033:
034: Prof. Dr. Klaus Greve
035: Department of Geography
036: University of Bonn
037: Meckenheimer Allee 166
038: 53115 Bonn
039: Germany
040: E-Mail: greve@giub.uni-bonn.de
041:
042:
043: ---------------------------------------------------------------------------*/
044: package org.deegree.ogcwebservices;
045:
046: import org.deegree.framework.xml.XMLTools;
047: import org.deegree.ogcbase.ExceptionCode;
048: import org.deegree.ogcbase.OGCException;
049: import org.w3c.dom.Document;
050: import org.w3c.dom.Element;
051:
052: /**
053: *
054: *
055: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
056: * @author last edited by: $Author: rbezema $
057: *
058: * @version 1.0. $Revision: 10402 $, $Date: 2008-03-04 08:22:14 -0800 (Tue, 04 Mar 2008) $
059: *
060: * @since 2.0
061: */
062: public class OGCWebServiceException extends OGCException {
063:
064: /**
065: *
066: */
067: private static final long serialVersionUID = -2081577799241168634L;
068:
069: private String locator = "unknown";
070:
071: /**
072: * creates an OGCWebServiceException from a DOM object as defined in the OGC common
073: * implementation specification
074: *
075: * @param doc
076: * @return an {@link OGCWebServiceException} with the message, code and locator set to the xml
077: * inside the document.
078: */
079: public static OGCWebServiceException create(Document doc) {
080: Element root = doc.getDocumentElement();
081: return create(root);
082: }
083:
084: /**
085: * creates an OGCWebServiceException from a DOM Element object as defined in the OGC common
086: * implementation specification
087: *
088: * @param root
089: * @return an {@link OGCWebServiceException} with the message, code and locator set to the xml
090: * inside the document.
091: *
092: */
093: public static OGCWebServiceException create(Element root) {
094:
095: String code = XMLTools.getAttrValue(root, null, "code", null);
096: String lo = XMLTools.getAttrValue(root, null, "locator", null);
097:
098: String me = XMLTools.getStringValue(root);
099:
100: ExceptionCode ec = new ExceptionCode(code);
101: return new OGCWebServiceException(me, lo, ec);
102: }
103:
104: /**
105: * @param message
106: */
107: public OGCWebServiceException(String message) {
108: super (message);
109: }
110:
111: /**
112: * @param message
113: * @param code
114: * of the exception, often defined in the web service spec.
115: */
116: public OGCWebServiceException(String message, ExceptionCode code) {
117: super (message, code);
118: }
119:
120: /**
121: * @param locator
122: * @param message
123: */
124: public OGCWebServiceException(String locator, String message) {
125: super (message);
126: this .locator = locator;
127: }
128:
129: /**
130: * @param locator
131: * @param message
132: * @param code
133: */
134: public OGCWebServiceException(String locator, String message,
135: ExceptionCode code) {
136: super (message, code);
137: this .locator = locator;
138: }
139:
140: /**
141: * @return the class/service that has caused the exception
142: *
143: */
144: public String getLocator() {
145: return locator;
146: }
147:
148: /**
149: * @param locator
150: * sets the class/service that has caused the exception
151: *
152: */
153: public void setLocator(String locator) {
154: this.locator = locator;
155: }
156: }
|