More work on commands, statemgmt, EL references
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / sp / ServiceProxySession.java
1 package com.indexdata.pz2utils4jsf.pazpar2.sp;\r
2 \r
3 import java.io.IOException;\r
4 import java.io.UnsupportedEncodingException;\r
5 \r
6 import org.apache.log4j.Logger;\r
7 \r
8 import com.indexdata.pz2utils4jsf.pazpar2.ForServiceProxy;\r
9 import com.indexdata.pz2utils4jsf.pazpar2.Pz2Session;\r
10 import com.indexdata.pz2utils4jsf.pazpar2.commands.CommandParameter;\r
11 import com.indexdata.pz2utils4jsf.pazpar2.sp.auth.ServiceProxyUser;\r
12 import com.indexdata.pz2utils4jsf.utils.Utils;\r
13 \r
14 @ForServiceProxy\r
15 public class ServiceProxySession extends Pz2Session implements ServiceProxyInterface {\r
16 \r
17   private ServiceProxyUser user; \r
18   private static final long serialVersionUID = -5770410029361522854L;\r
19   private static Logger logger = Logger.getLogger(ServiceProxySession.class);\r
20   private String initDocFileName = "";\r
21   private String initDocResponse = "";  \r
22     \r
23   public ServiceProxySession() {\r
24     logger.info("Instantiating pz2 session object [" + Utils.objectId(this) + "]");\r
25   }\r
26   \r
27   public void setUser(ServiceProxyUser user) {\r
28     this.user = user;\r
29   }\r
30 \r
31   @Override\r
32   public String login(String navigateTo) {\r
33     if (client().authenticate(user)) {\r
34       return navigateTo;\r
35     } else {\r
36       return null;\r
37     }      \r
38   }\r
39 \r
40   @Override\r
41   public void setInitFileName(String fileName) {\r
42     this.initDocFileName = fileName;\r
43     \r
44   }\r
45 \r
46   @Override\r
47   public String getInitFileName() {\r
48     return initDocFileName;\r
49   }\r
50 \r
51   @Override\r
52   public String postInit() throws UnsupportedEncodingException, IOException {    \r
53     String initDocPath = client().getInitDocPaths()[0];\r
54     logger.info("Paths: " + client().getInitDocPaths());\r
55     logger.info("Path: " + initDocPath);\r
56     this.resetDataObjects();\r
57     byte[] response = client().postInitDoc(initDocPath + getInitFileName());\r
58     initDocResponse = new String(response,"UTF-8");\r
59     return initDocResponse;\r
60   }\r
61   \r
62   @Override\r
63   public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException {    \r
64     this.resetDataObjects();\r
65     byte[] response = client().postInitDoc(initDoc);\r
66     initDocResponse = new String(response,"UTF-8");\r
67     return initDocResponse;\r
68   }\r
69 \r
70 \r
71   @Override\r
72   public void setServiceProxyUrl(String url) {\r
73     client().setServiceProxyUrl(url);\r
74     \r
75   }\r
76 \r
77   @Override\r
78   public String getServiceProxyUrl() {\r
79     return client().getServiceProxyUrl();\r
80   }\r
81   \r
82   public ServiceProxyClient client () {\r
83     return (ServiceProxyClient)searchClient;\r
84   }\r
85 \r
86   @Override\r
87   public String getInitResponse() {\r
88     return initDocResponse;\r
89   }\r
90   \r
91   public void setAceFilter(String filterExpression) {\r
92     setCommandParameter("record",new CommandParameter("acefilter","=",filterExpression));\r
93   }\r
94   \r
95   public String getAceFilter () {\r
96     return getCommandParameterValue("record","acefilter","");\r
97   }\r
98   \r
99 }\r