\r
public Pazpar2Command (String name, StateManager stateMgr) {\r
this.name = name;\r
- if (stateMgr == null) {\r
- // Sets throw-away state\r
- this.stateMgr = new StateManager();\r
- } else {\r
- this.stateMgr = stateMgr;\r
- }\r
+ this.stateMgr = stateMgr;\r
}\r
\r
public Pazpar2Command copy () {\r
Pazpar2Command copy = this.copy();\r
logger.debug(name + " command: setting parameter [" + parameter.getName() + "=" + parameter.getValueWithExpressions() + "]");\r
copy.parameters.put(parameter.getName(),parameter);\r
- stateMgr.checkIn(copy);\r
+ checkInState(copy);\r
}\r
\r
public void setParameters (CommandParameter... params) {\r
logger.debug(name + " command: setting parameter [" + param.getName() + "=" + param.getValueWithExpressions() + "]");\r
copy.parameters.put(param.getName(),param);\r
}\r
- stateMgr.checkIn(copy);\r
+ checkInState(copy);\r
}\r
\r
public void setParametersInState (CommandParameter... params) { \r
public void removeParameter (String name) {\r
Pazpar2Command copy = this.copy();\r
copy.parameters.remove(name);\r
- stateMgr.checkIn(copy);\r
+ checkInState(copy);\r
}\r
\r
public void removeParameters() {\r
Pazpar2Command copy = this.copy();\r
copy.parameters = new HashMap<String,CommandParameter>();\r
- stateMgr.checkIn(copy);\r
+ checkInState(copy);\r
}\r
\r
public void removeParametersInState() {\r
\r
public String getSession() {\r
return getParameterValue("session");\r
- } \r
+ } \r
+ \r
+ private void checkInState(Pazpar2Command command) {\r
+ if (stateMgr != null) {\r
+ stateMgr.checkIn(command);\r
+ } else {\r
+ logger.info("Command '" + command.getName() + "' not affecting state (history) as no state manager was defined for this command.");\r
+ }\r
+ }\r
}\r