Adds windowid parameter to SP init command
[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.commands.Pazpar2Command;\r
15 import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
16 import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
17 import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;\r
18 \r
19 /**\r
20  * Service Proxy extensions to the Pazpar2 <code>init</code> command - specifically \r
21  * support for POSTing to the Service Proxy an init doc containing Pazpar2 \r
22  * definitions and settings. \r
23  * \r
24  * This feature, however, is not supported in the publicly released Service Proxy at this point. \r
25  * \r
26  * @author Niels Erik\r
27  *\r
28  */\r
29 public class InitCommandSp implements Serializable, ServiceProxyCommand {\r
30 \r
31   private static final long serialVersionUID = -6609045941782375651L;\r
32   private static Logger logger = Logger.getLogger(InitCommandSp.class);\r
33   private InitCommand command = null;\r
34   \r
35   private InitDocUpload initDocUpload = null;\r
36 \r
37   public InitCommandSp(InitCommand initCommand) {\r
38     this.command=initCommand;\r
39     initDocUpload = new InitDocUpload();\r
40   }\r
41   \r
42   /**\r
43    * Sets Service Proxy command parameter <code>includeDebug</code>.  \r
44    */\r
45   public void setIncludeDebug (String includeDebug) {\r
46     command.setParameterInState(new CommandParameter("includeDebug","=",includeDebug));\r
47   }\r
48   \r
49   public String getIncludeDebug () {\r
50     return command.getParameterValue("includeDebug");\r
51   }\r
52 \r
53   public void setUploadedInitDoc (UploadedFile uploadedFile) {\r
54     initDocUpload.setUploadedFile(uploadedFile);\r
55   }\r
56   \r
57   public UploadedFile getUploadedInitDoc () {\r
58     logger.info("initDocUpload is: " + initDocUpload );\r
59     logger.info("initDocUpload.getUploadedFile() is: " +initDocUpload.getUploadedFile());\r
60     return initDocUpload.getUploadedFile();\r
61   }\r
62   \r
63   public void downloadInitDoc () throws IOException {\r
64     initDocUpload.downloadDoc();\r
65   }\r
66   \r
67   public SpResponseDataObject run() {\r
68     Pz2Service.get().resetSearchAndRecordCommands();\r
69     Pz2Service.get().getPzresp().getSp().resetAuthAndBeyond(true);    \r
70     if (initDocUpload.hasUploadedFile()) {\r
71       try {\r
72         byte[] bytes = getUploadedInitDoc().getBytes();\r
73         HttpResponseWrapper response = Pz2Service.get().getSpClient().postInitDoc(bytes,command);    \r
74         ResponseDataObject responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)response);    \r
75         Pz2Service.get().getPzresp().put("init", responseObject);\r
76       } catch (IOException e) {\r
77         // TODO Auto-generated catch block\r
78         e.printStackTrace();\r
79       }\r
80     } else {\r
81       Pz2Service.get().getSpClient().executeCommand(this.command);\r
82     }\r
83     return null;\r
84   }\r
85   \r
86   /**\r
87    * Sets the <code>windowid</code> parameter. See Service Proxy documentation for details.\r
88    */  \r
89   public void setWindowid (String windowid) {\r
90     command.setParameterInState(new CommandParameter("windowid","=",windowid));\r
91   }\r
92   \r
93   /** \r
94    * Returns the <code>windowid</code> parameter value.\r
95    */\r
96   public String getWindowid () {\r
97     return command.getParameterValue("windowid");\r
98   }\r
99 \r
100   @Override\r
101   public boolean spOnly() {\r
102     return true;\r
103   }  \r
104   \r
105 }\r