Cleans up SP auth, parse resps, store for display, etc
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / data / ResponseParser.java
index 9466473..29a5fb7 100644 (file)
@@ -18,19 +18,6 @@ import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;\r
 import org.xml.sax.helpers.DefaultHandler;\r
 \r
-import com.indexdata.mkjsf.pazpar2.data.ByTarget;\r
-import com.indexdata.mkjsf.pazpar2.data.Hit;\r
-import com.indexdata.mkjsf.pazpar2.data.Location;\r
-import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
-import com.indexdata.mkjsf.pazpar2.data.RecordResponse;\r
-import com.indexdata.mkjsf.pazpar2.data.ShowResponse;\r
-import com.indexdata.mkjsf.pazpar2.data.StatResponse;\r
-import com.indexdata.mkjsf.pazpar2.data.Target;\r
-import com.indexdata.mkjsf.pazpar2.data.TermListResponse;\r
-import com.indexdata.mkjsf.pazpar2.data.TermListsResponse;\r
-import com.indexdata.mkjsf.pazpar2.data.TermResponse;\r
-import com.indexdata.mkjsf.pazpar2.data.TermXTargetResponse;\r
-\r
 public class ResponseParser extends DefaultHandler {\r
 \r
   private XMLReader xmlReader = null;\r
@@ -40,10 +27,10 @@ public class ResponseParser extends DefaultHandler {
   private String xml = null;\r
   private static Logger logger = Logger.getLogger(ResponseParser.class);\r
 \r
-  public static final List<String> docTypes = \r
-      Arrays.asList("bytarget","termlist","show","stat","record","search");\r
+  public static List<String> docTypes = Arrays.asList(  "bytarget","termlist","show","stat","record","search","init",\r
+                                        /* SP extras */ "response" );                                        \r
   \r
-  public ResponseParser() {    \r
+  public ResponseParser() {\r
     try {\r
       initSax();\r
     } catch (ParserConfigurationException e) {\r
@@ -79,13 +66,10 @@ public class ResponseParser extends DefaultHandler {
     try {      \r
       xmlReader.parse(new InputSource(new ByteArrayInputStream(response.getBytes("UTF-8"))));\r
     } catch (UnsupportedEncodingException e) {\r
-      // TODO Auto-generated catch block\r
-      e.printStackTrace();      \r
+      e.printStackTrace(); \r
     } catch (IOException e) {\r
-      // TODO Auto-generated catch block\r
       e.printStackTrace();\r
     } catch (SAXException e) {\r
-      // TODO Auto-generated catch block\r
       e.printStackTrace();      \r
     }\r
     return result;\r
@@ -97,12 +81,18 @@ public class ResponseParser extends DefaultHandler {
    */\r
   @Override\r
   public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {\r
-    if (localName.equals("show")) {\r
+    if (localName.equals("init")) {\r
+      currentElement = new InitResponse();\r
+    } else if (localName.equals("search")) {\r
+      currentElement = new SearchResponse();\r
+    } else if (localName.equals("show")) {\r
       currentElement = new ShowResponse();      \r
     } else if (localName.equals("hit")) {\r
       currentElement = new Hit();\r
     } else if (localName.equals("location")) {\r
       currentElement = new Location();\r
+    } else if (localName.equals("record")) {\r
+      currentElement = new RecordResponse();            \r
     } else if (localName.equals("bytarget")) {\r
       currentElement = new ByTarget();      \r
     } else if (localName.equals("target")) {\r
@@ -122,14 +112,12 @@ public class ResponseParser extends DefaultHandler {
         currentElement = new TermResponse();\r
       }\r
       ((TermListResponse)dataElements.peek()).addTerm((TermResponse)currentElement);\r
-    } else if (localName.equals("record")) {\r
-      currentElement = new RecordResponse();      \r
-    } else if (localName.equals("search")) {\r
-      currentElement = new SearchResponse();\r
     } else if (localName.equals("applicationerror")) {\r
       currentElement = new CommandError();\r
     } else if (localName.equals("error") && dataElements.peek().getType().equals("applicationerror")) {\r
-      currentElement = new Pazpar2Error();     \r
+      currentElement = new Pazpar2Error(); \r
+    } else if (localName.equals("response")) {  // Note, document element not named 'auth'\r
+      currentElement = new AuthResponse();\r
     } else {\r
       currentElement = new ResponseDataObject();\r
     }\r