X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fcommands%2FPazpar2Command.java;h=73fd075f9eae8733cb08f090f7c89df82dd53413;hb=bcb39bd9bde8071ac3a6741ce5d51ed9e763ba9c;hp=9a3695ba5683e8704e1a4a130c50ce9808c09c9f;hpb=c6430ad85e3b04ea2823df38c15e8473342ff95b;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Command.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Command.java index 9a3695b..73fd075 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Command.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Command.java @@ -6,31 +6,26 @@ import java.util.Map; import org.apache.log4j.Logger; +import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand; import com.indexdata.mkjsf.pazpar2.state.StateManager; -public class Pazpar2Command implements Serializable { +public abstract class Pazpar2Command implements Serializable { private static Logger logger = Logger.getLogger(Pazpar2Command.class); private static final long serialVersionUID = -6825491856480675917L; - private String name = ""; + protected String name = ""; protected Map parameters = new HashMap(); - StateManager stateMgr; + protected StateManager stateMgr; public Pazpar2Command (String name, StateManager stateMgr) { this.name = name; this.stateMgr = stateMgr; } - public Pazpar2Command copy () { - Pazpar2Command newCommand = new Pazpar2Command(name,stateMgr); - for (String parameterName : parameters.keySet()) { - newCommand.setParameterInState(parameters.get(parameterName).copy()); - } - return newCommand; - } + public abstract Pazpar2Command copy (); - public String getName() { + public String getCommandName() { return name; } @@ -88,14 +83,16 @@ public class Pazpar2Command implements Serializable { return (parameters.keySet().size()>0); } - public boolean hasParameterSet(String parameterName) { - return (parameters.get(parameterName) != null); + public boolean hasParameterValue(String parameterName) { + return (parameters.get(parameterName) != null && parameters.get(parameterName).hasValue()); } public String getEncodedQueryString () { StringBuilder queryString = new StringBuilder("command="+name); for (CommandParameter parameter : parameters.values()) { - queryString.append("&"+parameter.getEncodedQueryString()); + if (parameter.hasValue()) { + queryString.append("&"+parameter.getEncodedQueryString()); + } } return queryString.toString(); } @@ -103,7 +100,9 @@ public class Pazpar2Command implements Serializable { public String getValueWithExpressions() { StringBuilder value = new StringBuilder(""); for (CommandParameter parameter : parameters.values()) { - value.append("&" + parameter.getName() + parameter.operator + parameter.getValueWithExpressions()); + if (parameter.hasValue()) { + value.append("&" + parameter.getName() + parameter.operator + parameter.getValueWithExpressions()); + } } return value.toString(); } @@ -125,7 +124,7 @@ public class Pazpar2Command implements Serializable { } public String getParameterValue(String parameterName) { - return getParameter(parameterName).getValueWithExpressions(); + return getParameter(parameterName)==null ? "" : getParameter(parameterName).getValueWithExpressions(); } @@ -145,7 +144,10 @@ public class Pazpar2Command implements Serializable { if (stateMgr != null) { stateMgr.checkIn(command); } else { - logger.info("Command '" + command.getName() + "' not affecting state (history) as no state manager was defined for this command."); + logger.info("Command '" + command.getCommandName() + "' not affecting state (history) as no state manager was defined for this command."); } } + + public abstract ServiceProxyCommand getSp(); + }