Exposing configuration for use in upper layers
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / Pz2Session.java
index d506678..a4b1b68 100644 (file)
@@ -49,7 +49,7 @@ public class Pz2Session implements Pz2Interface {
     logger.info("Instantiating pz2 session object [" + Utils.objectId(this) + "]");      \r
   }\r
     \r
-  public void init(SearchClient searchClient, ConfigurationReader configReader) {\r
+  public void configureClient(SearchClient searchClient, ConfigurationReader configReader) {\r
     configurationErrors = new ArrayList<ErrorInterface>();\r
     errorHelper = new ErrorHelper(configReader);    \r
     logger.debug(Utils.objectId(this) + " will configure search client for the session");\r
@@ -62,8 +62,7 @@ public class Pz2Session implements Pz2Interface {
       // To avoid that, a context free client is cloned from the context \r
       // dependent one. \r
       // If propagation to threads gets supported, the cloning can go. \r
-      this.searchClient = searchClient.cloneMe();   \r
-      \r
+      this.searchClient = searchClient.cloneMe();         \r
     } catch (ConfigurationException e) {\r
       configurationErrors.add(new ConfigurationError("Search Client","Configuration",e.getMessage(),new ErrorHelper(configReader)));          \r
     } \r
@@ -127,7 +126,12 @@ public class Pz2Session implements Pz2Interface {
            Pazpar2ResponseData responseObject = Pazpar2ResponseParser.getParser().getDataObject(response);\r
            dataObjects.put(commandName, responseObject);        \r
         }\r
-        return getActiveClients();\r
+        if (commands.equals("record")) {\r
+          logger.debug("Record: Active clients: "+getRecord().getActiveClients());\r
+          return getRecord().getActiveClients();\r
+        } else {\r
+          return getActiveClients();\r
+        }  \r
       } else {\r
         logger.debug("Skipped requests for " + commands + " as there's not yet a query."); \r
         resetDataObjects();\r
@@ -228,22 +232,29 @@ public class Pz2Session implements Pz2Interface {
   public int getStart() {\r
     return getCommandParameterValue("show","start",0);\r
   }\r
-        \r
+          \r
   public String toggleRecord (String recId) {\r
     if (hasRecord(recId)) {\r
       removeCommand("record");  \r
       dataObjects.put("record", new RecordResponse());\r
       return "";\r
     } else {\r
-      return updateRecord(recId);\r
+      setRecordId(recId);\r
+      return doCommand("record");\r
     }\r
   }\r
   \r
-  private String updateRecord(String recId) {    \r
-    setCommandParameter("record",new CommandParameter("id","=",recId));    \r
-    return doCommand("record");    \r
+  @Override\r
+  public void setRecordId(String recId) {\r
+    setCommandParameter("record",new CommandParameter("id","=",recId));\r
+  }\r
+  \r
+  @Override\r
+  public String getRecordId () {\r
+    return getCommandParameterValue("record","recid","");\r
   }\r
   \r
+  @Override\r
   public boolean hasRecord (String recId) {\r
     return getCommand("record").hasParameters() && getRecord().getRecId().equals(recId);\r
   }\r
@@ -375,7 +386,7 @@ public class Pz2Session implements Pz2Interface {
       logger.debug("Found pending record ID change. Doing record before updating " + commands);\r
       queryStates.hasPendingStateChange("record",false);\r
       if (getCommand("record").hasParameters()) {\r
-        updateRecord(getCommand("record").getParameter("id").getSimpleValue());\r
+        update("record");\r
       } else {\r
         removeCommand("record");  \r
         dataObjects.put("record", new RecordResponse());\r