Adds SP extensions to Pazpar2 commands and parameters
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / Pazpar2Command.java
index 9a3695b..871eb30 100644 (file)
@@ -6,29 +6,24 @@ import java.util.Map;
 \r
 import org.apache.log4j.Logger;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class Pazpar2Command implements Serializable  {\r
+public abstract class Pazpar2Command implements Serializable  {\r
   \r
   private static Logger logger = Logger.getLogger(Pazpar2Command.class);\r
   private static final long serialVersionUID = -6825491856480675917L;   \r
-  private String name = "";\r
+  protected String name = "";\r
   protected Map<String,CommandParameter> parameters = new HashMap<String,CommandParameter>();\r
   \r
-  StateManager stateMgr;\r
+  protected StateManager stateMgr;\r
     \r
   public Pazpar2Command (String name, StateManager stateMgr) {\r
     this.name = name;\r
     this.stateMgr = stateMgr;\r
   }\r
       \r
-  public Pazpar2Command copy () {\r
-    Pazpar2Command newCommand = new Pazpar2Command(name,stateMgr);\r
-    for (String parameterName : parameters.keySet()) {\r
-      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
-    }    \r
-    return newCommand;\r
-  }\r
+  public abstract Pazpar2Command copy ();\r
   \r
   public String getName() {\r
     return name;\r
@@ -125,7 +120,7 @@ public class Pazpar2Command implements Serializable  {
   }\r
 \r
   public String getParameterValue(String parameterName) {\r
-    return getParameter(parameterName).getValueWithExpressions();\r
+    return getParameter(parameterName)==null ? "" : getParameter(parameterName).getValueWithExpressions();\r
     \r
   }\r
 \r
@@ -148,4 +143,7 @@ public class Pazpar2Command implements Serializable  {
       logger.info("Command '" + command.getName() + "' not affecting state (history) as no state manager was defined for this command.");\r
     }\r
   }\r
+  \r
+  public abstract ServiceProxyCommand getSp();\r
+  \r
 }\r