Adds windowid parameter to applicable commands
[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 = null;\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     if (initDocUpload != null) {\r
59       logger.info("initDocUpload.getUploadedFile() is: " +initDocUpload.getUploadedFile());    \r
60     return initDocUpload.getUploadedFile();\r
61     } else {\r
62       return null;\r
63     }\r
64   }\r
65   \r
66   public void downloadInitDoc () throws IOException {\r
67     initDocUpload.downloadDoc();\r
68   }\r
69   \r
70   public SpResponseDataObject run() {\r
71     Pz2Service.get().resetSearchAndRecordCommands();\r
72     Pz2Service.get().getPzresp().getSp().resetAuthAndBeyond(true);    \r
73     if (initDocUpload.hasUploadedFile()) {\r
74       try {\r
75         byte[] bytes = getUploadedInitDoc().getBytes();\r
76         HttpResponseWrapper response = Pz2Service.get().getSpClient().postInitDoc(bytes,command);    \r
77         ResponseDataObject responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)response);    \r
78         Pz2Service.get().getPzresp().put("init", responseObject);\r
79       } catch (IOException e) {\r
80         // TODO Auto-generated catch block\r
81         e.printStackTrace();\r
82       }\r
83     } else {\r
84       Pz2Service.get().getSpClient().executeCommand(this.command);\r
85     }\r
86     return null;\r
87   }\r
88   \r
89   /**\r
90    * Sets the <code>windowid</code> parameter. See Service Proxy documentation for details.\r
91    */  \r
92   public void setWindowid (String windowid) {\r
93     command.setParameterInState(new CommandParameter("windowid","=",windowid));\r
94   }\r
95   \r
96   /** \r
97    * Returns the <code>windowid</code> parameter value.\r
98    */\r
99   public String getWindowid () {\r
100     return command.getParameterValue("windowid");\r
101   }\r
102 \r
103   @Override\r
104   public boolean spOnly() {\r
105     return true;\r
106   }  \r
107   \r
108 }\r