1c7748aec7e01bb67f62731a1dec97adc3140c43
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / sp / InitCommandSp.java
1 package com.indexdata.mkjsf.pazpar2.commands.sp;\r
2 \r
3 import java.io.IOException;\r
4 import java.io.Serializable;\r
5 \r
6 import org.apache.log4j.Logger;\r
7 import org.apache.myfaces.custom.fileupload.UploadedFile;\r
8 \r
9 import com.indexdata.mkjsf.pazpar2.ClientCommandResponse;\r
10 import com.indexdata.mkjsf.pazpar2.HttpResponseWrapper;\r
11 import com.indexdata.mkjsf.pazpar2.Pz2Service;\r
12 import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
13 import com.indexdata.mkjsf.pazpar2.commands.InitCommand;\r
14 import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
15 import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
16 import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;\r
17 \r
18 /**\r
19  * Service Proxy extensions to the Pazpar2 <code>init</code> command - specifically \r
20  * support for POSTing to the Service Proxy an init doc containing Pazpar2 \r
21  * definitions and settings. \r
22  * \r
23  * This feature, however, is not supported in the publicly released Service Proxy at this point. \r
24  * \r
25  * @author Niels Erik\r
26  *\r
27  */\r
28 public class InitCommandSp implements Serializable, ServiceProxyCommand {\r
29 \r
30   private static final long serialVersionUID = -6609045941782375651L;\r
31   private static Logger logger = Logger.getLogger(InitCommandSp.class);\r
32   private InitCommand command = null;\r
33   \r
34   private InitDocUpload initDocUpload;\r
35 \r
36   public InitCommandSp(InitCommand initCommand) {\r
37     this.command=initCommand;\r
38     initDocUpload = new InitDocUpload();\r
39   }\r
40   \r
41   /**\r
42    * Sets Service Proxy command parameter <code>includeDebug</code>.  \r
43    */\r
44   public void setIncludeDebug (String includeDebug) {\r
45     command.setParameterInState(new CommandParameter("includeDebug","=",includeDebug));\r
46   }\r
47   \r
48   public String getIncludeDebug () {\r
49     return command.getParameterValue("includeDebug");\r
50   }\r
51 \r
52   public void setUploadedInitDoc (UploadedFile uploadedFile) {\r
53     initDocUpload.setUploadedFile(uploadedFile);\r
54   }\r
55   \r
56   public UploadedFile getUploadedInitDoc () {\r
57     logger.info("initDocUpload is: " + initDocUpload );\r
58     logger.info("initDocUpload.getUploadedFile() is: " +initDocUpload.getUploadedFile());\r
59     return initDocUpload.getUploadedFile();\r
60   }\r
61   \r
62   public void downloadInitDoc () throws IOException {\r
63     initDocUpload.downloadDoc();\r
64   }\r
65   \r
66   public SpResponseDataObject run() {\r
67     Pz2Service.get().resetSearchAndRecordCommands();\r
68     Pz2Service.get().getPzresp().getSp().resetAuthAndBeyond(true);    \r
69     try {\r
70       byte[] bytes = getUploadedInitDoc().getBytes();\r
71       HttpResponseWrapper response = Pz2Service.get().getSpClient().postInitDoc(bytes,getIncludeDebug().equals("yes"));    \r
72       ResponseDataObject responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)response);    \r
73       Pz2Service.get().getPzresp().put("init", responseObject);\r
74     } catch (IOException e) {\r
75       // TODO Auto-generated catch block\r
76       e.printStackTrace();\r
77     }\r
78     return null;\r
79   }\r
80 \r
81   @Override\r
82   public boolean spOnly() {\r
83     return true;\r
84   }\r
85   \r
86   \r
87   \r
88 }\r