Clears info response when clearing init response
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / Pazpar2Command.java
index 82ac066..4a802df 100644 (file)
@@ -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