X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fdata%2FResponseParser.java;h=8036a2992e845de1189d1b5ce9bb8cccb51ad2f9;hb=1ab622be3bcde018e6b7816d4af8b79f80159630;hp=179424d8f41635671e96c21e16247be31386fb42;hpb=3cc9707fdd556a222b5d8e6bba61c84a320eb357;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseParser.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseParser.java index 179424d..8036a29 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseParser.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseParser.java @@ -23,6 +23,12 @@ import com.indexdata.mkjsf.pazpar2.data.sp.AuthResponse; import com.indexdata.mkjsf.pazpar2.data.sp.CategoriesResponse; import com.indexdata.mkjsf.pazpar2.data.sp.TargetCategory; +/** + * Parses the XML stored in ClientCommandResponses and builds ResponseDataObjects from it. + * + * @author Niels Erik + * + */ public class ResponseParser extends DefaultHandler { private XMLReader xmlReader = null; @@ -32,7 +38,7 @@ public class ResponseParser extends DefaultHandler { private String xml = null; private static Logger logger = Logger.getLogger(ResponseParser.class); - public static List docTypes = Arrays.asList( "bytarget","termlist","show","stat","record","search","init", + public static List docTypes = Arrays.asList( "bytarget","termlist","show","stat","record","search","init","info", /* SP extras */ "auth", "categories" ); public ResponseParser() { @@ -99,7 +105,7 @@ public class ResponseParser extends DefaultHandler { } else if (localName.equals("record")) { currentElement = new RecordResponse(); } else if (localName.equals("bytarget")) { - currentElement = new ByTarget(); + currentElement = new ByTargetResponse(); } else if (localName.equals("target")) { currentElement = new Target(); } else if (localName.equals("stat")) { @@ -117,6 +123,10 @@ public class ResponseParser extends DefaultHandler { currentElement = new TermResponse(); } ((TermListResponse)dataElements.peek()).addTerm((TermResponse)currentElement); + } else if (localName.equals("info")) { + currentElement = new InfoResponse(); + } else if (localName.equals("version") && dataElements.peek().getType().equals("info")) { + currentElement = new Pazpar2VersionResponse(); } else if (localName.equals("applicationerror")) { currentElement = new CommandError(); } else if (localName.equals("error") && dataElements.peek().getType().equals("applicationerror")) {