Javadoc
[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 init 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  * @author Niels Erik\r
24  *\r
25  */\r
26 public class InitCommandSp implements Serializable, ServiceProxyCommand {\r
27 \r
28   private static final long serialVersionUID = -6609045941782375651L;\r
29   private static Logger logger = Logger.getLogger(InitCommandSp.class);\r
30   private InitCommand command = null;\r
31   \r
32   private InitDocUpload initDocUpload;\r
33 \r
34   public InitCommandSp(InitCommand initCommand) {\r
35     this.command=initCommand;\r
36     initDocUpload = new InitDocUpload();\r
37   }\r
38   \r
39   public void setIncludeDebug (String includeDebug) {\r
40     command.setParameterInState(new CommandParameter("includeDebug","=",includeDebug));\r
41   }\r
42   \r
43   public String getIncludeDebug () {\r
44     return command.getParameterValue("includeDebug");\r
45   }\r
46 \r
47   public void setUploadedInitDoc (UploadedFile uploadedFile) {\r
48     initDocUpload.setUploadedFile(uploadedFile);\r
49   }\r
50   \r
51   public UploadedFile getUploadedInitDoc () {\r
52     logger.info("initDocUpload is: " + initDocUpload );\r
53     logger.info("initDocUpload.getUploadedFile() is: " +initDocUpload.getUploadedFile());\r
54     return initDocUpload.getUploadedFile();\r
55   }\r
56   \r
57   public void downloadInitDoc () throws IOException {\r
58     initDocUpload.downloadDoc();\r
59   }\r
60   \r
61   public SpResponseDataObject run() {\r
62     Pz2Service.get().resetSearchAndRecordCommands();\r
63     Pz2Service.get().getPzresp().getSp().resetAuthAndBeyond(true);    \r
64     try {\r
65       byte[] bytes = getUploadedInitDoc().getBytes();\r
66       HttpResponseWrapper response = Pz2Service.get().getSpClient().postInitDoc(bytes,getIncludeDebug().equals("yes"));    \r
67       ResponseDataObject responseObject = ResponseParser.getParser().getDataObject((ClientCommandResponse)response);    \r
68       Pz2Service.get().getPzresp().put("init", responseObject);\r
69     } catch (IOException e) {\r
70       // TODO Auto-generated catch block\r
71       e.printStackTrace();\r
72     }\r
73     return null;\r
74   }\r
75 \r
76   @Override\r
77   public boolean spOnly() {\r
78     return true;\r
79   }\r
80   \r
81   \r
82   \r
83 }\r