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 / commands / sp / InitCommandSp.java
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/InitCommandSp.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/InitCommandSp.java
new file mode 100644 (file)
index 0000000..1c7748a
--- /dev/null
@@ -0,0 +1,88 @@
+package com.indexdata.mkjsf.pazpar2.commands.sp;\r
+\r
+import java.io.IOException;\r
+import java.io.Serializable;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.apache.myfaces.custom.fileupload.UploadedFile;\r
+\r
+import com.indexdata.mkjsf.pazpar2.ClientCommandResponse;\r
+import com.indexdata.mkjsf.pazpar2.HttpResponseWrapper;\r
+import com.indexdata.mkjsf.pazpar2.Pz2Service;\r
+import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
+import com.indexdata.mkjsf.pazpar2.commands.InitCommand;\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
+import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;\r
+\r
+/**\r
+ * Service Proxy extensions to the Pazpar2 <code>init</code> command - specifically \r
+ * support for POSTing to the Service Proxy an init doc containing Pazpar2 \r
+ * definitions and settings. \r
+ * \r
+ * This feature, however, is not supported in the publicly released Service Proxy at this point. \r
+ * \r
+ * @author Niels Erik\r
+ *\r
+ */\r
+public class InitCommandSp implements Serializable, ServiceProxyCommand {\r
+\r
+  private static final long serialVersionUID = -6609045941782375651L;\r
+  private static Logger logger = Logger.getLogger(InitCommandSp.class);\r
+  private InitCommand command = null;\r
+  \r
+  private InitDocUpload initDocUpload;\r
+\r
+  public InitCommandSp(InitCommand initCommand) {\r
+    this.command=initCommand;\r
+    initDocUpload = new InitDocUpload();\r
+  }\r
+  \r
+  /**\r
+   * Sets Service Proxy command parameter <code>includeDebug</code>.  \r
+   */\r
+  public void setIncludeDebug (String includeDebug) {\r
+    command.setParameterInState(new CommandParameter("includeDebug","=",includeDebug));\r
+  }\r
+  \r
+  public String getIncludeDebug () {\r
+    return command.getParameterValue("includeDebug");\r
+  }\r
+\r
+  public void setUploadedInitDoc (UploadedFile uploadedFile) {\r
+    initDocUpload.setUploadedFile(uploadedFile);\r
+  }\r
+  \r
+  public UploadedFile getUploadedInitDoc () {\r
+    logger.info("initDocUpload is: " + initDocUpload );\r
+    logger.info("initDocUpload.getUploadedFile() is: " +initDocUpload.getUploadedFile());\r
+    return initDocUpload.getUploadedFile();\r
+  }\r
+  \r
+  public void downloadInitDoc () throws IOException {\r
+    initDocUpload.downloadDoc();\r
+  }\r
+  \r
+  public SpResponseDataObject run() {\r
+    Pz2Service.get().resetSearchAndRecordCommands();\r
+    Pz2Service.get().getPzresp().getSp().resetAuthAndBeyond(true);    \r
+    try {\r
+      byte[] bytes = getUploadedInitDoc().getBytes();\r
+      HttpResponseWrapper response = Pz2Service.get().getSpClient().postInitDoc(bytes,getIncludeDebug().equals("yes"));    \r
+      ResponseDataObject responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)response);    \r
+      Pz2Service.get().getPzresp().put("init", responseObject);\r
+    } catch (IOException e) {\r
+      // TODO Auto-generated catch block\r
+      e.printStackTrace();\r
+    }\r
+    return null;\r
+  }\r
+\r
+  @Override\r
+  public boolean spOnly() {\r
+    return true;\r
+  }\r
+  \r
+  \r
+  \r
+}\r