Clears info response when clearing init response
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / Pazpar2Command.java
index d8730b7..4a802df 100644 (file)
@@ -50,7 +50,7 @@ public abstract class Pazpar2Command implements Serializable  {
   }\r
       \r
   /**\r
-   * Commands must implement this method to provide an completely detached, deep clone of \r
+   * Commands must implement this method to provide a completely detached, deep clone of \r
    * themselves.\r
    * \r
    * The clone is needed by the state manager to transfer commands with current setting \r
@@ -219,6 +219,10 @@ public abstract class Pazpar2Command implements Serializable  {
     checkInState(copy);\r
   }\r
   \r
+  public void removeParameterInState (String name) {\r
+    parameters.remove(name);\r
+  }\r
+  \r
   /**\r
    * Removes multiple parameters completely and notifies the state manager\r
    * -- once -- about the change\r
@@ -254,6 +258,10 @@ public abstract class Pazpar2Command implements Serializable  {
     checkInState(copy);\r
   }\r
   \r
+  public void addExpressionInState (String parameterName, Expression expression) {\r
+    getParameter(parameterName).addExpression(expression);\r
+  }\r
+  \r
   public void removeExpression(String parameterName, Expression expression) {\r
     Pazpar2Command copy = this.copy();\r
     copy.getParameter(parameterName).removeExpression(expression);\r
@@ -267,12 +275,14 @@ public abstract class Pazpar2Command implements Serializable  {
   }\r
   \r
   public void removeExpressions(String parameterName, String... expressionFields) {\r
-    Pazpar2Command copy = this.copy();    \r
-    copy.getParameter(parameterName).removeExpressions(expressionFields);    \r
-    if (!getParameter(parameterName).hasValue() && !getParameter(parameterName).hasExpressions()) {\r
-      copy.parameters.remove(parameterName);\r
+    if (this.getParameter(parameterName) != null) {\r
+      Pazpar2Command copy = this.copy();    \r
+      copy.getParameter(parameterName).removeExpressions(expressionFields);    \r
+      if (!getParameter(parameterName).hasValue() && !getParameter(parameterName).hasExpressions()) {\r
+        copy.parameters.remove(parameterName);\r
+      }\r
+      checkInState(copy);    \r
     }\r
-    checkInState(copy);    \r
   }\r
   \r
   public boolean hasParameters () {\r