Simplifies state handling further
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / commands / Pazpar2Command.java
index 97be62d..b4f67e9 100644 (file)
@@ -8,7 +8,7 @@ import org.apache.log4j.Logger;
 \r
 import com.indexdata.pz2utils4jsf.pazpar2.state.StateManager;\r
 \r
-public class Pazpar2Command implements CommandReadOnly, Serializable  {\r
+public class Pazpar2Command implements Serializable  {\r
   \r
   private static Logger logger = Logger.getLogger(Pazpar2Command.class);\r
   private static final long serialVersionUID = -6825491856480675917L;   \r
@@ -30,7 +30,7 @@ public class Pazpar2Command implements CommandReadOnly, Serializable  {
   public Pazpar2Command copy () {\r
     Pazpar2Command newCommand = new Pazpar2Command(name,stateMgr);\r
     for (String parameterName : parameters.keySet()) {\r
-      newCommand.setParameterSilently(parameters.get(parameterName).copy());      \r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
     }    \r
     return newCommand;\r
   }\r
@@ -40,21 +40,29 @@ public class Pazpar2Command implements CommandReadOnly, Serializable  {
   }\r
     \r
   public void setParameter (CommandParameter parameter) {\r
+    Pazpar2Command thisCommand = this.copy();\r
     logger.debug(name + " setting parameter " + parameter.getName() + "=" + parameter.getValueWithExpressions() + " to " + this.getName());\r
-    parameters.put(parameter.getName(),parameter);\r
-    stateMgr.checkIn(this);\r
+    thisCommand.parameters.put(parameter.getName(),parameter);\r
+    stateMgr.checkIn(thisCommand);\r
   }\r
   \r
   public void setParameters (CommandParameter... params) {\r
+    Pazpar2Command thisCommand = this.copy();\r
     for (CommandParameter param : params) {\r
       logger.debug(name + " setting parameter " + param.getName() + "=" + param.getValueWithExpressions() + " to " + this.getName());\r
-      parameters.put(param.getName(),param);\r
+      thisCommand.parameters.put(param.getName(),param);\r
     }\r
-    stateMgr.checkIn(this);\r
+    stateMgr.checkIn(thisCommand);\r
   }\r
   \r
-  \r
-  public void setParameterSilently (CommandParameter parameter) {\r
+  public void setParametersInState (CommandParameter... params) {    \r
+    for (CommandParameter param : params) {\r
+      logger.debug(name + " setting parameter " + param.getName() + "=" + param.getValueWithExpressions() + " to " + this.getName());\r
+      parameters.put(param.getName(),param);\r
+    }    \r
+  }\r
+    \r
+  public void setParameterInState (CommandParameter parameter) {\r
     logger.debug(name + " setting parameter silently " + parameter.getName() + "=" + parameter.getValueWithExpressions() + " to " + this.getName());\r
     parameters.put(parameter.getName(),parameter);    \r
   }\r
@@ -65,16 +73,18 @@ public class Pazpar2Command implements CommandReadOnly, Serializable  {
   }\r
   \r
   public void removeParameter (String name) {\r
-    parameters.remove(name);\r
-    stateMgr.checkIn(this);\r
+    Pazpar2Command thisCommand = this.copy();\r
+    thisCommand.parameters.remove(name);\r
+    stateMgr.checkIn(thisCommand);\r
   }\r
   \r
   public void removeParameters() {\r
-    parameters = new HashMap<String,CommandParameter>();\r
-    stateMgr.checkIn(this);\r
+    Pazpar2Command thisCommand = this.copy();\r
+    thisCommand.parameters = new HashMap<String,CommandParameter>();\r
+    stateMgr.checkIn(thisCommand);\r
   }\r
   \r
-  public void removeParametersSilently() {\r
+  public void removeParametersInState() {\r
     parameters = new HashMap<String,CommandParameter>();    \r
   }\r
 \r
@@ -119,13 +129,11 @@ public class Pazpar2Command implements CommandReadOnly, Serializable  {
     return parameters.toString();\r
   }\r
 \r
-  @Override\r
   public String getParameterValue(String parameterName) {\r
     return getParameter(parameterName).getValueWithExpressions();\r
     \r
   }\r
 \r
-  @Override\r
   public String getUrlEncodedParameterValue(String parameterName) {\r
     return getParameter(parameterName).getEncodedQueryString();\r
   }\r