Adds support for pazpar2 info command
authorNiels Erik G. Nielsen <nielserik@indexdata.com>
Fri, 18 Apr 2014 19:56:29 +0000 (15:56 -0400)
committerNiels Erik G. Nielsen <nielserik@indexdata.com>
Fri, 18 Apr 2014 19:56:29 +0000 (15:56 -0400)
src/main/java/com/indexdata/mkjsf/pazpar2/commands/InfoCommand.java [new file with mode: 0644]
src/main/java/com/indexdata/mkjsf/pazpar2/data/InfoResponse.java [new file with mode: 0644]
src/main/java/com/indexdata/mkjsf/pazpar2/data/Pazpar2VersionResponse.java [new file with mode: 0644]
src/main/java/com/indexdata/mkjsf/pazpar2/data/ResponseParser.java

diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/InfoCommand.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/InfoCommand.java
new file mode 100644 (file)
index 0000000..7c8e578
--- /dev/null
@@ -0,0 +1,51 @@
+/**\r
+ * \r
+ */\r
+package com.indexdata.mkjsf.pazpar2.commands;\r
+\r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
+\r
+/**\r
+ * @author Niels Erik\r
+ *\r
+ */\r
+public class InfoCommand extends Pazpar2Command implements ServiceProxyCommand {\r
+\r
+  /**\r
+   * \r
+   */\r
+  private static final long serialVersionUID = -180974027395677475L;\r
+\r
+  public InfoCommand () {\r
+    super("info");\r
+  }\r
+  \r
+  /* (non-Javadoc)\r
+   * @see com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command#copy()\r
+   */\r
+  @Override\r
+  public Pazpar2Command copy() {\r
+    InfoCommand newCommand = new InfoCommand();\r
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+\r
+  /* (non-Javadoc)\r
+   * @see com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command#getSp()\r
+   */\r
+  @Override\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
+\r
+  /* (non-Javadoc)\r
+   * @see com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command#spOnly()\r
+   */\r
+  @Override\r
+  public boolean spOnly() {\r
+    return false;\r
+  }\r
+\r
+}\r
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/InfoResponse.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/InfoResponse.java
new file mode 100644 (file)
index 0000000..82f31dc
--- /dev/null
@@ -0,0 +1,19 @@
+package com.indexdata.mkjsf.pazpar2.data;\r
+\r
+public class InfoResponse extends ResponseDataObject {\r
+\r
+  /**\r
+   * \r
+   */\r
+  private static final long serialVersionUID = 3084509436017631123L;\r
+\r
+  public String getPazpar2Version () {\r
+    return getOneElement("version").getOneValue("pazpar2");\r
+  }\r
+  \r
+  public String getYazVersion() {\r
+    return getOneElement("version").getOneValue("yaz");\r
+  }\r
+  \r
+  \r
+}\r
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/Pazpar2VersionResponse.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/Pazpar2VersionResponse.java
new file mode 100644 (file)
index 0000000..6b4fff3
--- /dev/null
@@ -0,0 +1,17 @@
+package com.indexdata.mkjsf.pazpar2.data;\r
+\r
+public class Pazpar2VersionResponse extends ResponseDataObject {\r
+\r
+  /**\r
+   * \r
+   */\r
+  private static final long serialVersionUID = 8565086923105413965L;\r
+\r
+  public String getPazpar2 () {    \r
+    return getOneValue("pazpar2");\r
+  }\r
+  \r
+  public String getYaz() {\r
+    return getOneValue("yaz");\r
+  }\r
+}\r
index 56e4218..8036a29 100644 (file)
@@ -38,7 +38,7 @@ public class ResponseParser extends DefaultHandler {
   private String xml = null;\r
   private static Logger logger = Logger.getLogger(ResponseParser.class);\r
 \r
   private String xml = null;\r
   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
+  public static List<String> docTypes = Arrays.asList(  "bytarget","termlist","show","stat","record","search","init","info",\r
                                         /* SP extras */ "auth", "categories" );                                        \r
   \r
   public ResponseParser() {\r
                                         /* SP extras */ "auth", "categories" );                                        \r
   \r
   public ResponseParser() {\r
@@ -123,6 +123,10 @@ public class ResponseParser extends DefaultHandler {
         currentElement = new TermResponse();\r
       }\r
       ((TermListResponse)dataElements.peek()).addTerm((TermResponse)currentElement);\r
         currentElement = new TermResponse();\r
       }\r
       ((TermListResponse)dataElements.peek()).addTerm((TermResponse)currentElement);\r
+    } else if (localName.equals("info")) {\r
+      currentElement = new InfoResponse();\r
+    } else if (localName.equals("version") && dataElements.peek().getType().equals("info")) {\r
+      currentElement = new Pazpar2VersionResponse();\r
     } else if (localName.equals("applicationerror")) {\r
       currentElement = new CommandError();\r
     } else if (localName.equals("error") && dataElements.peek().getType().equals("applicationerror")) {\r
     } else if (localName.equals("applicationerror")) {\r
       currentElement = new CommandError();\r
     } else if (localName.equals("error") && dataElements.peek().getType().equals("applicationerror")) {\r