1 package com.indexdata.mkjsf.pazpar2.commands.sp;
\r
3 import java.io.IOException;
\r
4 import java.io.Serializable;
\r
6 import org.apache.log4j.Logger;
\r
7 import org.apache.myfaces.custom.fileupload.UploadedFile;
\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
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
24 * This feature, however, is not supported in the publicly released Service Proxy at this point.
\r
26 * @author Niels Erik
\r
29 public class InitCommandSp implements Serializable, ServiceProxyCommand {
\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
35 private InitDocUpload initDocUpload = null;
\r
37 public InitCommandSp(InitCommand initCommand) {
\r
38 this.command=initCommand;
\r
39 initDocUpload = new InitDocUpload();
\r
43 * Sets Service Proxy command parameter <code>includeDebug</code>.
\r
45 public void setIncludeDebug (String includeDebug) {
\r
46 command.setParameterInState(new CommandParameter("includeDebug","=",includeDebug));
\r
49 public String getIncludeDebug () {
\r
50 return command.getParameterValue("includeDebug");
\r
53 public void setUploadedInitDoc (UploadedFile uploadedFile) {
\r
54 initDocUpload.setUploadedFile(uploadedFile);
\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
63 public void downloadInitDoc () throws IOException {
\r
64 initDocUpload.downloadDoc();
\r
67 public SpResponseDataObject run() {
\r
68 Pz2Service.get().resetSearchAndRecordCommands();
\r
69 Pz2Service.get().getPzresp().getSp().resetAuthAndBeyond(true);
\r
70 if (initDocUpload.hasUploadedFile()) {
\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
81 Pz2Service.get().getSpClient().executeCommand(this.command);
\r
87 * Sets the <code>windowid</code> parameter. See Service Proxy documentation for details.
\r
89 public void setWindowid (String windowid) {
\r
90 command.setParameterInState(new CommandParameter("windowid","=",windowid));
\r
94 * Returns the <code>windowid</code> parameter value.
\r
96 public String getWindowid () {
\r
97 return command.getParameterValue("windowid");
\r
101 public boolean spOnly() {
\r