Creates read-only command for optimization
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / Pz2ProxyBean.java
1 package com.indexdata.pz2utils4jsf.pazpar2;\r
2 \r
3 import java.io.IOException;\r
4 import java.io.UnsupportedEncodingException;\r
5 \r
6 import javax.annotation.PostConstruct;\r
7 import javax.enterprise.context.SessionScoped;\r
8 import javax.enterprise.inject.Alternative;\r
9 import javax.inject.Inject;\r
10 import javax.inject.Named;\r
11 \r
12 import org.apache.log4j.Logger;\r
13 \r
14 import com.indexdata.pz2utils4jsf.config.Configuration;\r
15 import com.indexdata.pz2utils4jsf.config.ConfigurationReader;\r
16 import com.indexdata.pz2utils4jsf.pazpar2.commands.SearchCommand;\r
17 import com.indexdata.pz2utils4jsf.pazpar2.sp.ForServiceProxy;\r
18 import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxyClient;\r
19 import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxyInterface;\r
20 import com.indexdata.pz2utils4jsf.pazpar2.sp.ServiceProxySession;\r
21 import com.indexdata.pz2utils4jsf.pazpar2.sp.auth.ServiceProxyUser;\r
22 import com.indexdata.pz2utils4jsf.utils.Utils;\r
23 \r
24 @Named("pz2") @SessionScoped @Alternative\r
25 public class Pz2ProxyBean extends Pz2Bean implements ServiceProxyInterface {\r
26     \r
27   private static final long serialVersionUID = 4221824985678758225L;\r
28   private static Logger logger = Logger.getLogger(Pz2ProxyBean.class);  \r
29     \r
30   @Inject ConfigurationReader configurator;\r
31   @Inject ServiceProxyUser user;  \r
32   @Inject @ForServiceProxy ServiceProxySession pz2;\r
33   \r
34   public Pz2ProxyBean() {\r
35   }\r
36   \r
37   @PostConstruct\r
38   public void instantiateServiceProxyClient() {\r
39     logger.debug(Utils.objectId(this) + " will instantiate a ServiceProxyClient next.");    \r
40     searchClient = new ServiceProxyClient();\r
41     logger.info("Using [" + Utils.objectId(searchClient) + "] configured by [" \r
42                           + Utils.objectId(configurator) + "] on session [" \r
43                           + Utils.objectId(pz2) + "]" );    \r
44     pz2.configureClient(searchClient,configurator);\r
45   }\r
46 \r
47   @Override\r
48   public String login(String navigateTo) {\r
49     logger.info("doing login");\r
50     session().setUser(user);\r
51     session().resetDataObjects();\r
52     session().removeCommand("record");\r
53     ((SearchCommand)session().getCommand("search")).setQuery(null);\r
54     return session().login(navigateTo);\r
55   }\r
56 \r
57   @Override\r
58   public void setInitFileName(String fileName) {\r
59     logger.info("Setting init file name: " + fileName);\r
60     session().setInitFileName(fileName);      \r
61   }\r
62 \r
63   @Override\r
64   public String getInitFileName() {\r
65     return session().getInitFileName();\r
66   }\r
67   \r
68   public void setAceFilter (String filterExpression) {\r
69     session().setAceFilter(filterExpression);\r
70   }\r
71   \r
72   public String getAceFilter () {\r
73     return session().getAceFilter();\r
74   }\r
75 \r
76   @Override\r
77   public String postInit() throws UnsupportedEncodingException, IOException {\r
78     logger.info("Posting init: " + System.currentTimeMillis());\r
79     session().postInit();\r
80     return "";\r
81   }\r
82   \r
83   public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException {\r
84     logger.info("Posting init: " + System.currentTimeMillis());\r
85     session().postInit(initDoc);\r
86     return "";\r
87     \r
88   }\r
89 \r
90   @Override\r
91   public void setServiceProxyUrl(String url) {\r
92     logger.info("Setting Service Proxy url: " + url);\r
93     session().setServiceProxyUrl(url); \r
94     ((SearchCommand)session().getCommand("search")).setQuery(null);\r
95     session().resetDataObjects();\r
96   }\r
97 \r
98   @Override\r
99   public String getServiceProxyUrl() {\r
100     return session().getServiceProxyUrl();    \r
101   }\r
102   \r
103   public ServiceProxySession session() {\r
104     return (ServiceProxySession)pz2;\r
105   }\r
106 \r
107   @Override\r
108   public String getInitResponse() {\r
109     return session().getInitResponse();\r
110   }\r
111   \r
112   public Configuration getClientConfiguration() {\r
113     return session().client().getConfiguration();\r
114   }\r
115   \r
116   public String getInitDocPath () {\r
117     return session().client().getConfiguration().get("INIT_DOC_PATH");\r
118   }\r
119 \r
120 }\r