package com.indexdata.pz2utils4jsf.pazpar2.sp;\r
\r
+import java.io.IOException;\r
+import java.io.UnsupportedEncodingException;\r
+\r
+import javax.enterprise.context.SessionScoped;\r
+\r
import org.apache.log4j.Logger;\r
\r
import com.indexdata.pz2utils4jsf.pazpar2.Pz2Session;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.CommandParameter;\r
import com.indexdata.pz2utils4jsf.pazpar2.sp.auth.ServiceProxyUser;\r
import com.indexdata.pz2utils4jsf.utils.Utils;\r
\r
+@ForServiceProxy @SessionScoped\r
public class ServiceProxySession extends Pz2Session implements ServiceProxyInterface {\r
\r
private ServiceProxyUser user; \r
private static final long serialVersionUID = -5770410029361522854L;\r
private static Logger logger = Logger.getLogger(ServiceProxySession.class);\r
- \r
+ private String initDocFileName = "";\r
+ private String initDocResponse = ""; \r
+ \r
public ServiceProxySession() {\r
- logger.info("Instantiating pz2 session object [" + Utils.objectId(this) + "]");\r
+ logger.info("Instantiating SP pz2 session object [" + Utils.objectId(this) + "]");\r
}\r
\r
public void setUser(ServiceProxyUser user) {\r
\r
@Override\r
public String login(String navigateTo) {\r
- if (((ServiceProxyClient)searchClient).authenticate(user)) {\r
+ if (client().authenticate(user)) {\r
return navigateTo;\r
} else {\r
return null;\r
} \r
}\r
+\r
+ @Override\r
+ public void setInitFileName(String fileName) {\r
+ this.initDocFileName = fileName;\r
+ \r
+ }\r
+\r
+ @Override\r
+ public String getInitFileName() {\r
+ return initDocFileName;\r
+ }\r
+\r
+ @Override\r
+ public String postInit() throws UnsupportedEncodingException, IOException { \r
+ String initDocPath = client().getInitDocPaths()[0];\r
+ logger.info("Paths: " + client().getInitDocPaths());\r
+ logger.info("Path: " + initDocPath);\r
+ this.resetDataObjects();\r
+ byte[] response = client().postInitDoc(initDocPath + getInitFileName());\r
+ initDocResponse = new String(response,"UTF-8");\r
+ return initDocResponse;\r
+ }\r
+ \r
+ @Override\r
+ public String postInit(byte[] initDoc) throws UnsupportedEncodingException, IOException { \r
+ this.resetDataObjects();\r
+ byte[] response = client().postInitDoc(initDoc);\r
+ initDocResponse = new String(response,"UTF-8");\r
+ return initDocResponse;\r
+ }\r
+\r
+\r
+ @Override\r
+ public void setServiceProxyUrl(String url) {\r
+ client().setServiceProxyUrl(url);\r
+ \r
+ }\r
+\r
+ @Override\r
+ public String getServiceProxyUrl() {\r
+ return client().getServiceProxyUrl();\r
+ }\r
\r
+ public ServiceProxyClient client () {\r
+ return (ServiceProxyClient)searchClient;\r
+ }\r
\r
+ @Override\r
+ public String getInitResponse() {\r
+ return initDocResponse;\r
+ }\r
+ \r
+ public void setAceFilter(String filterExpression) {\r
+ setCommandParameter("record",new CommandParameter("acefilter","=",filterExpression));\r
+ }\r
+ \r
+ public String getAceFilter () {\r
+ return getCommandParameterValue("record","acefilter","");\r
+ }\r
+ \r
}\r