aboutsummaryrefslogtreecommitdiff
path: root/id.server/src/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java
diff options
context:
space:
mode:
Diffstat (limited to 'id.server/src/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java')
-rw-r--r--id.server/src/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java92
1 files changed, 37 insertions, 55 deletions
diff --git a/id.server/src/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java b/id.server/src/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java
index 7084faf1f..8edeec8ae 100644
--- a/id.server/src/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java
+++ b/id.server/src/at/gv/egovernment/moa/id/auth/parser/ErrorResponseParser.java
@@ -1,89 +1,71 @@
package at.gv.egovernment.moa.id.auth.parser;
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
+import java.util.List;
import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
import at.gv.egovernment.moa.id.ParseException;
import at.gv.egovernment.moa.util.DOMUtils;
-import at.gv.egovernment.moa.util.XPathUtils;
/**
- * Parses an <code>&lt;InfoboxReadResponse&gt;</code>.
+ * Parses an <code>&lt;ErrorResponse&gt;</code>.
*
* @author Stefan Knirsch
* @version $Id$
*/
public class ErrorResponseParser {
-
- /** This is the root element of the XML-Document provided by the Security Layer Card */
- private Element errorElement;
-
+
/**
- * Constructor for InfoboxReadResponseParser.
- * A DOM-representation of the incoming String will be created
- * @param xmlResponse <code>&lt;InfoboxReadResponse&gt;</code> as String
- * @throws ParseException on any error
+ * The error code included in this error response.
+ * <code>1000</code> is used as default value, if some problems occur on
+ * evaluating the error response.
*/
- public ErrorResponseParser(String xmlResponse) throws ParseException {
- try {
- InputStream s = new ByteArrayInputStream(xmlResponse.getBytes("UTF-8"));
- errorElement = DOMUtils.parseXmlValidating(s);
- }
- catch (Throwable t) {
- throw new ParseException("parser.01", new Object[] { t.toString()}, t);
- }
- }
+ private String errorCode_ = "1000";
+
+ /**
+ * The error info included in this error response.
+ * <code>&lt;Unklassifizierter Fehler.&gt;</code> is used as default value,
+ * if some problems occur on evaluating the error response.
+ */
+ private String errorInfo_ = "Unklassifizierter Fehler.";
+
/**
- * Constructor for InfoboxReadResponseParser.
- * A DOM-representation of the incoming Inputstream will be created
- * @param xmlResponse <code>&lt;InfoboxReadResponse&gt;</code> as InputStream
- * @throws ParseException on any error
+ * This Constructor extracts the error code and error info included in this
+ * error response.
+ *
+ * @param errorElement The error element. This is the root element of
+ * the error response.
*/
- public ErrorResponseParser(InputStream xmlResponse) throws ParseException {
- try {
- errorElement = DOMUtils.parseXmlValidating(xmlResponse);
- }
- catch (Throwable t) {
- throw new ParseException("parser.01", new Object[] { t.toString() }, t);
+ public ErrorResponseParser(Element errorElement) throws ParseException {
+ if (errorElement != null) {
+ String namespace = errorElement.getNamespaceURI();
+ NodeList nl = errorElement.getElementsByTagNameNS(namespace, "ErrorCode");
+ if (nl.getLength() == 1) {
+ errorCode_ = ((Element)nl.item(0)).getFirstChild().getNodeValue();
+ }
+ nl = errorElement.getElementsByTagNameNS(namespace, "Info");
+ if (nl.getLength() == 1) {
+ errorInfo_ = ((Element)nl.item(0)).getFirstChild().getNodeValue();
+ }
}
}
/**
- * Method getErrorCode. returns the error code
- * @return String
+ * Returns the error code included in this error response.
*/
public String getErrorCode() {
-
- String slPrefix = XPathUtils.getSlPrefix(errorElement);
- StringBuffer sb = new StringBuffer("/");
- sb.append(slPrefix);
- sb.append(":ErrorResponse/");
- sb.append(slPrefix);
- sb.append(":ErrorCode");
- String errorCodeXPath = sb.toString();
- return XPathUtils.getElementValue(errorElement,errorCodeXPath,null);
-
+ return errorCode_ ;
}
/**
- * Method getErrorInfo: returns the information about the error
- * @return String
+ * Returns the information included in this error response.
+ * @return
*/
public String getErrorInfo() {
-
- String slPrefix = XPathUtils.getSlPrefix(errorElement);
- StringBuffer sb = new StringBuffer("/");
- sb.append(slPrefix);
- sb.append(":ErrorResponse/");
- sb.append(slPrefix);
- sb.append(":Info");
- String errorInfoXPath = sb.toString();
- return XPathUtils.getElementValue(errorElement,errorInfoXPath,null);
-
+ return errorInfo_ ;
}