}\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
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
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
}\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