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