Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkjsf.git into...
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / CommandThread.java
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/CommandThread.java b/src/main/java/com/indexdata/mkjsf/pazpar2/CommandThread.java
new file mode 100644 (file)
index 0000000..678e4a6
--- /dev/null
@@ -0,0 +1,49 @@
+package com.indexdata.mkjsf.pazpar2;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
+import com.indexdata.mkjsf.pazpar2.data.Responses;\r
+\r
+/**\r
+ * Helper class for running multiple concurrent Pazpar2 commands. Basically \r
+ * used for updating display data (show,stat,bytarget,termlist) together.\r
+ * \r
+ * @author Niels Erik\r
+ *\r
+ */\r
+public class CommandThread extends Thread {\r
+\r
+  private static Logger logger = Logger.getLogger(CommandThread.class);\r
+  Pazpar2Command command;\r
+  SearchClient client;\r
+  Responses pzresp;\r
+  HttpResponseWrapper commandResponse = null;      \r
+  \r
+  public CommandThread (Pazpar2Command command, SearchClient client, Responses pzresp) {\r
+    this.command = command;\r
+    this.client = client;\r
+    this.pzresp = pzresp;\r
+  }\r
+  \r
+  /**\r
+   * Executes the specified command using the specified Pazpar2 client\r
+   */\r
+  public void run() {    \r
+    logger.debug(command.getCommandName() + " executing asynchronously");\r
+    command.run(client,pzresp);\r
+  }\r
+  \r
+  /**\r
+   * \r
+   * @return Pazpar2 response as an XML string, possibly a generated error XML\r
+   */\r
+  public HttpResponseWrapper getCommandResponse () {\r
+    return commandResponse;\r
+  }\r
+    \r
+  public Pazpar2Command getCommand() {\r
+    return command;\r
+  }\r
+\r
+}\r