Adds distinction between pz2 and sp errors
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / data / ResponseParser.java
index 852ebb1..179424d 100644 (file)
@@ -19,6 +19,9 @@ import org.xml.sax.XMLReader;
 import org.xml.sax.helpers.DefaultHandler;\r
 \r
 import com.indexdata.mkjsf.pazpar2.ClientCommandResponse;\r
+import com.indexdata.mkjsf.pazpar2.data.sp.AuthResponse;\r
+import com.indexdata.mkjsf.pazpar2.data.sp.CategoriesResponse;\r
+import com.indexdata.mkjsf.pazpar2.data.sp.TargetCategory;\r
 \r
 public class ResponseParser extends DefaultHandler {\r
 \r
@@ -30,7 +33,7 @@ public class ResponseParser extends DefaultHandler {
   private static Logger logger = Logger.getLogger(ResponseParser.class);\r
 \r
   public static List<String> docTypes = Arrays.asList(  "bytarget","termlist","show","stat","record","search","init",\r
-                                        /* SP extras */ "auth" );                                        \r
+                                        /* SP extras */ "auth", "categories" );                                        \r
   \r
   public ResponseParser() {\r
     try {\r
@@ -117,9 +120,15 @@ public class ResponseParser extends DefaultHandler {
     } 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 ServiceError(); \r
+    // Service Proxy extras  \r
     } else if (localName.equals("auth")) {  \r
       currentElement = new AuthResponse();\r
+    } else if (localName.equals("categories")) {\r
+      currentElement = new CategoriesResponse();\r
+    } else if (localName.equals("category") && dataElements.peek().getType().equals("categories")) {\r
+      currentElement = new TargetCategory();\r
+    // Catch all\r
     } else {\r
       currentElement = new ResponseDataObject();\r
     }\r