Work on error reporting. Adds troubleshooter.
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / data / Pazpar2ResponseParser.java
index c4a4d11..40cf412 100644 (file)
@@ -52,6 +52,10 @@ public class Pazpar2ResponseParser extends DefaultHandler {
     }\r
   }\r
   \r
+  public static Pazpar2ResponseParser getParser() {\r
+    return new Pazpar2ResponseParser();\r
+  }\r
+  \r
   private void initSax() throws ParserConfigurationException, SAXException {\r
     SAXParserFactory spf = SAXParserFactory.newInstance();\r
     spf.setNamespaceAware(true);\r
@@ -60,7 +64,14 @@ public class Pazpar2ResponseParser extends DefaultHandler {
     xmlReader.setContentHandler(this);         \r
   }\r
   \r
-  public Pazpar2ResponseData getObject (String response) {\r
+  /**\r
+   * Parses a Pazpar2 XML response -- or an error response as XML -- and produces a \r
+   * Pazpar2ResponseData object, i.e. a 'show' object\r
+   * \r
+   * @param response XML response string from Pazpar2\r
+   * @return Response data object\r
+   */\r
+  public Pazpar2ResponseData getDataObject (String response) {\r
     try {\r
       xmlReader.parse(new InputSource(new ByteArrayInputStream(response.getBytes("UTF-8"))));\r
     } catch (UnsupportedEncodingException e) {\r
@@ -111,6 +122,8 @@ public class Pazpar2ResponseParser extends DefaultHandler {
       currentElement = new RecordResponse();\r
     } else if (localName.equals("search")) {\r
       currentElement = new SearchResponse();\r
+    } else if (localName.equals("applicationerror")) {\r
+      currentElement = new ApplicationError();\r
     } else {\r
       currentElement = new Pazpar2ResponseData();\r
     }\r