--- /dev/null
+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