Adds check for SP only commands.
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / Pazpar2Command.java
index 871eb30..a67f829 100644 (file)
@@ -25,13 +25,13 @@ public abstract class Pazpar2Command implements Serializable  {
       \r
   public abstract Pazpar2Command copy ();\r
   \r
-  public String getName() {\r
+  public String getCommandName() {\r
     return name;\r
   }\r
     \r
   public void setParameter (CommandParameter parameter) {\r
     Pazpar2Command copy = this.copy();\r
-    logger.debug(name + " command: setting parameter [" + parameter.getName() + "=" + parameter.getValueWithExpressions() + "]");\r
+    logger.trace(name + " command: setting parameter [" + parameter.getName() + "=" + parameter.getValueWithExpressions() + "]");\r
     copy.parameters.put(parameter.getName(),parameter);\r
     checkInState(copy);\r
   }\r
@@ -39,7 +39,7 @@ public abstract class Pazpar2Command implements Serializable  {
   public void setParameters (CommandParameter... params) {\r
     Pazpar2Command copy = this.copy();\r
     for (CommandParameter param : params) {\r
-      logger.debug(name + " command: setting parameter [" + param.getName() + "=" + param.getValueWithExpressions() + "]");\r
+      logger.trace(name + " command: setting parameter [" + param.getName() + "=" + param.getValueWithExpressions() + "]");\r
       copy.parameters.put(param.getName(),param);\r
     }\r
     checkInState(copy);\r
@@ -47,13 +47,13 @@ public abstract class Pazpar2Command implements Serializable  {
   \r
   public void setParametersInState (CommandParameter... params) {    \r
     for (CommandParameter param : params) {\r
-      logger.debug(name + " command: setting parameter [" + param.getName() + "=" + param.getValueWithExpressions() + "] silently");\r
+      logger.trace(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
+    logger.trace(name + " command: setting parameter [" + parameter.getName() + "=" + parameter.getValueWithExpressions() + "] silently");\r
     parameters.put(parameter.getName(),parameter);    \r
   }\r
   \r
@@ -83,14 +83,16 @@ public abstract class Pazpar2Command implements Serializable  {
     return (parameters.keySet().size()>0);\r
   }\r
   \r
-  public boolean hasParameterSet(String parameterName) {\r
-    return (parameters.get(parameterName) != null);\r
+  public boolean hasParameterValue(String parameterName) {\r
+    return (parameters.get(parameterName) != null && parameters.get(parameterName).hasValue());\r
   }\r
   \r
   public String getEncodedQueryString () {\r
     StringBuilder queryString = new StringBuilder("command="+name);\r
     for (CommandParameter parameter : parameters.values()) {\r
-       queryString.append("&"+parameter.getEncodedQueryString());       \r
+      if (parameter.hasValue()) {\r
+        queryString.append("&"+parameter.getEncodedQueryString());\r
+      }\r
     }\r
     return queryString.toString();\r
   } \r
@@ -98,7 +100,9 @@ public abstract class Pazpar2Command implements Serializable  {
   public String getValueWithExpressions() {    \r
     StringBuilder value = new StringBuilder("");\r
     for (CommandParameter parameter : parameters.values()) {\r
-      value.append("&" + parameter.getName() + parameter.operator + parameter.getValueWithExpressions());       \r
+      if (parameter.hasValue()) {\r
+        value.append("&" + parameter.getName() + parameter.operator + parameter.getValueWithExpressions());\r
+      }\r
    }\r
     return value.toString();\r
   }\r
@@ -140,10 +144,11 @@ public abstract class Pazpar2Command implements Serializable  {
     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
+      logger.info("Command '" + command.getCommandName() + "' not affecting state (history) as no state manager was defined for this command.");\r
     }\r
   }\r
   \r
   public abstract ServiceProxyCommand getSp();\r
-  \r
+   \r
+  public abstract boolean spOnly();  \r
 }\r