\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
public Pazpar2Command (String name, StateManager stateMgr) {\r
this.name = name;\r
if (stateMgr == null) {\r
- // Set one-off dummy state mgr\r
+ // Sets throw-away state\r
this.stateMgr = new StateManager();\r
} else {\r
this.stateMgr = stateMgr;\r
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
}\r
\r
public void setParameter (CommandParameter parameter) {\r
- logger.debug("Setting parameter " + parameter.getName() + "=" + parameter.getValueWithExpressions() + " to " + this.getName());\r
- parameters.put(parameter.getName(),parameter);\r
- stateMgr.checkIn(this);\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
}\r
\r
public void setParameters (CommandParameter... params) {\r
+ Pazpar2Command copy = this.copy();\r
for (CommandParameter param : params) {\r
- logger.debug("Setting parameter " + param.getName() + "=" + param.getValueWithExpressions() + " to " + this.getName());\r
- parameters.put(param.getName(),param);\r
+ logger.debug(name + " command: setting parameter [" + param.getName() + "=" + param.getValueWithExpressions() + "]");\r
+ copy.parameters.put(param.getName(),param);\r
}\r
- stateMgr.checkIn(this);\r
+ stateMgr.checkIn(copy);\r
}\r
\r
- \r
- public void setParameterSilently (CommandParameter parameter) {\r
- logger.debug("Setting parameter silently " + parameter.getName() + "=" + parameter.getValueWithExpressions() + " to " + this.getName());\r
+ public void setParametersInState (CommandParameter... params) { \r
+ for (CommandParameter param : params) {\r
+ logger.debug(name + " command: setting parameter [" + param.getName() + "=" + param.getValueWithExpressions() + "] silently");\r
+ parameters.put(param.getName(),param);\r
+ } \r
+ }\r
+ \r
+ public void setParameterInState (CommandParameter parameter) {\r
+ logger.debug(name + " command: setting parameter [" + parameter.getName() + "=" + parameter.getValueWithExpressions() + "] silently");\r
parameters.put(parameter.getName(),parameter); \r
}\r
\r
}\r
\r
public void removeParameter (String name) {\r
- parameters.remove(name);\r
- stateMgr.checkIn(this);\r
+ Pazpar2Command copy = this.copy();\r
+ copy.parameters.remove(name);\r
+ stateMgr.checkIn(copy);\r
}\r
\r
public void removeParameters() {\r
- parameters = new HashMap<String,CommandParameter>();\r
- stateMgr.checkIn(this);\r
+ Pazpar2Command copy = this.copy();\r
+ copy.parameters = new HashMap<String,CommandParameter>();\r
+ stateMgr.checkIn(copy);\r
}\r
\r
+ public void removeParametersInState() {\r
+ parameters = new HashMap<String,CommandParameter>(); \r
+ }\r
+\r
+ \r
public boolean hasParameters () {\r
return (parameters.keySet().size()>0);\r
}\r
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
\r
+ public void setSession (String sessionId) {\r
+ setParameter(new CommandParameter("session","=",sessionId));\r
+ }\r
\r
- \r
+ public String getSession() {\r
+ return getParameterValue("session");\r
+ } \r
}\r