Wiring of pazpar2 info command and response
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / state / Pazpar2State.java
index 13e3989..ffbfd8b 100644 (file)
@@ -4,6 +4,7 @@ import java.util.HashMap;
 import java.util.Map;\r
 \r
 import com.indexdata.mkjsf.pazpar2.commands.BytargetCommand;\r
+import com.indexdata.mkjsf.pazpar2.commands.InfoCommand;\r
 import com.indexdata.mkjsf.pazpar2.commands.InitCommand;\r
 import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
 import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Commands;\r
@@ -28,22 +29,25 @@ import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommands;
 public class Pazpar2State {\r
 \r
   String key = null;\r
-  Map<String,Pazpar2Command> commands = new HashMap<String,Pazpar2Command>();;\r
+  Map<String,Pazpar2Command> commands = new HashMap<String,Pazpar2Command>();  \r
 \r
-  public Pazpar2State (StateManager mgr) {\r
-    commands.put(Pazpar2Commands.INIT,     new InitCommand(mgr));\r
-    commands.put(Pazpar2Commands.PING,     new PingCommand(mgr));\r
-    commands.put(Pazpar2Commands.SETTINGS, new SettingsCommand(mgr));\r
-    commands.put(Pazpar2Commands.SEARCH,   new SearchCommand(mgr));\r
-    commands.put(Pazpar2Commands.STAT,     new StatCommand(mgr));\r
-    commands.put(Pazpar2Commands.SHOW,     new ShowCommand(mgr));\r
-    commands.put(Pazpar2Commands.RECORD,   new RecordCommand(mgr));\r
-    commands.put(Pazpar2Commands.TERMLIST, new TermlistCommand(mgr));\r
-    commands.put(Pazpar2Commands.BYTARGET, new BytargetCommand(mgr));  \r
+  public Pazpar2State () {\r
+    \r
+    commands.put(Pazpar2Commands.INIT,     new InitCommand());\r
+    commands.put(Pazpar2Commands.PING,     new PingCommand());\r
+    commands.put(Pazpar2Commands.SETTINGS, new SettingsCommand());\r
+    commands.put(Pazpar2Commands.SEARCH,   new SearchCommand());\r
+    commands.put(Pazpar2Commands.STAT,     new StatCommand());\r
+    commands.put(Pazpar2Commands.SHOW,     new ShowCommand());\r
+    commands.put(Pazpar2Commands.RECORD,   new RecordCommand());\r
+    commands.put(Pazpar2Commands.TERMLIST, new TermlistCommand());\r
+    commands.put(Pazpar2Commands.BYTARGET, new BytargetCommand());  \r
+    commands.put(Pazpar2Commands.INFO,     new InfoCommand());\r
 \r
-    commands.put(ServiceProxyCommands.AUTH, new AuthCommand(mgr));\r
-    commands.put(ServiceProxyCommands.CATEGORIES, new CategoriesCommand(mgr));\r
-    key = "#1";\r
+    commands.put(ServiceProxyCommands.AUTH, new AuthCommand());\r
+    commands.put(ServiceProxyCommands.CATEGORIES, new CategoriesCommand());\r
+    \r
+    // key = "#1";\r
   }\r
     \r
   /**\r
@@ -58,25 +62,28 @@ public class Pazpar2State {
       this.commands.put(commandName, previousState.commands.get(commandName).copy());\r
     }\r
     this.commands.put(newCommand.getCommandName(),newCommand);\r
-    this.key = getKey();           \r
+    this.key = getKey();    \r
   }\r
     \r
   /**\r
    * Generates a state key that can be used by the browser to pick\r
    * up this state again at a later point in time.\r
    * \r
+   * @see  {@link com.indexdata.mkjsf.pazpar2.state.StateManager#setCurrentStateKey}\r
    * @return\r
    */\r
   public String getKey() {\r
     if (key == null) {\r
       StringBuilder querystatebuilder = new StringBuilder("");\r
       for (Pazpar2Command command : commands.values()) {\r
-        if (command.hasParameters()) {\r
-          querystatebuilder.append("||"+command.getCommandName()+"::");\r
-          querystatebuilder.append(command.getValueWithExpressions());\r
-        }      \r
+        if (! (command instanceof AuthCommand )) {\r
+          if (command.hasParameters()) {\r
+            querystatebuilder.append("||"+command.getCommandName()+"::");\r
+            querystatebuilder.append(command.getValueWithExpressions());\r
+          }\r
+        }\r
       }            \r
-      key = "#"+querystatebuilder.toString();\r
+      key = "#"+querystatebuilder.toString().hashCode();\r
       return key;\r
     } else {      \r
       return key;\r