Renames project from pz2utils4jsf to mkjsf
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / state / Pazpar2State.java
index 4412a7f..39ac006 100644 (file)
@@ -1,24 +1,45 @@
 package com.indexdata.pz2utils4jsf.pazpar2.state;\r
 \r
-import java.util.Arrays;\r
 import java.util.HashMap;\r
 import java.util.Map;\r
 \r
-import com.indexdata.pz2utils4jsf.pazpar2.Pazpar2Command;\r
-\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.BytargetCommand;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.InitCommand;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.Pazpar2Command;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.Pazpar2Commands;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.PingCommand;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.RecordCommand;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.SearchCommand;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.SettingsCommand;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.ShowCommand;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.StatCommand;\r
+import com.indexdata.pz2utils4jsf.pazpar2.commands.TermlistCommand;\r
 \r
+/**\r
+ * Holds a 'pazpar2 state', understood as a full set of pazpar2 commands and \r
+ * all their parameter settings at a given point in time.\r
+ *  \r
+ * @author Niels Erik\r
+ *\r
+ */\r
 public class Pazpar2State {\r
 \r
   String key = null;\r
   Map<String,Pazpar2Command> commands = new HashMap<String,Pazpar2Command>();;\r
 \r
-  public Pazpar2State () {    \r
-    for (String command : Arrays.asList("init","ping","settings","search","stat","show","record","termlist","bytarget")) {\r
-      commands.put(command, new Pazpar2Command(command));\r
-    }\r
-    key = "#initial";\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
+    key = "#1";\r
   }\r
-  \r
+    \r
   /**\r
    * Creates new state by cloning all commands of the provided state and \r
    * then overriding one of them with the provided state changing command.\r
@@ -42,14 +63,14 @@ public class Pazpar2State {
    */\r
   public String getKey() {\r
     if (key == null) {\r
-      StringBuilder querystatebuilder = new StringBuilder("#");\r
+      StringBuilder querystatebuilder = new StringBuilder("");\r
       for (Pazpar2Command command : commands.values()) {\r
         if (command.hasParameters()) {\r
           querystatebuilder.append("||"+command.getName()+"::");\r
           querystatebuilder.append(command.getValueWithExpressions());\r
         }      \r
       }            \r
-      key = querystatebuilder.toString();\r
+      key = "#"+querystatebuilder.toString().hashCode();\r
       return key;\r
     } else {      \r
       return key;\r