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