Adds SP extensions to Pazpar2 commands and parameters
authorNiels Erik G. Nielsen <nielserik@indexdata.com>
Wed, 24 Apr 2013 21:10:05 +0000 (17:10 -0400)
committerNiels Erik G. Nielsen <nielserik@indexdata.com>
Wed, 24 Apr 2013 21:10:05 +0000 (17:10 -0400)
14 files changed:
src/main/java/com/indexdata/mkjsf/pazpar2/commands/BytargetCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/InitCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Command.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/PingCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/RecordCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/SearchCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/SettingsCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/ShowCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/StatCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/TermlistCommand.java
src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/AuthCommand.java [new file with mode: 0644]
src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/RecordCommandSp.java [new file with mode: 0644]
src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/ServiceProxyCommand.java [new file with mode: 0644]
src/main/java/com/indexdata/mkjsf/pazpar2/sp/ServiceProxyClient.java

index 57c66de..7f39b70 100644 (file)
@@ -1,8 +1,9 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class BytargetCommand extends Pazpar2Command {\r
+public class BytargetCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = 9070458716105294392L;\r
 \r
@@ -10,4 +11,15 @@ public class BytargetCommand extends Pazpar2Command {
     super("bytarget",stateMgr);\r
   }\r
 \r
+  public BytargetCommand copy () {\r
+    BytargetCommand newCommand = new BytargetCommand(stateMgr);\r
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
 }\r
index 2ae51a5..144a1a7 100644 (file)
@@ -1,8 +1,9 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class InitCommand extends Pazpar2Command {\r
+public class InitCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = -4915976465898889987L;\r
 \r
@@ -27,5 +28,18 @@ public class InitCommand extends Pazpar2Command {
   public String getSession () {\r
     throw new UnsupportedOperationException("Cannot set or get session id on init command");\r
   }\r
+  \r
+  public InitCommand copy () {\r
+    InitCommand newCommand = new InitCommand(stateMgr);\r
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+  \r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
+\r
 \r
 }\r
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
index 05c1934..5a75e56 100644 (file)
@@ -1,8 +1,9 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class PingCommand extends Pazpar2Command {\r
+public class PingCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = 8876721711326535847L;\r
 \r
@@ -10,4 +11,15 @@ public class PingCommand extends Pazpar2Command {
     super("ping",stateMgr);    \r
   }\r
   \r
+  public PingCommand copy () {\r
+    PingCommand newCommand = new PingCommand(stateMgr);\r
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
 }\r
index 8713ece..028b0d5 100644 (file)
@@ -1,8 +1,10 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.RecordCommandSp;\r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class RecordCommand extends Pazpar2Command {\r
+public class RecordCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = 2817539422114569506L;\r
 \r
@@ -70,4 +72,13 @@ public class RecordCommand extends Pazpar2Command {
     }    \r
     return newCommand;\r
   }\r
+  \r
+  \r
+  /**\r
+   * Returns a record command object with Service Proxy extension parameters \r
+   * \r
+   */\r
+  public RecordCommandSp getSp () {\r
+    return new RecordCommandSp(this);\r
+  }\r
 }\r
index 5e4e07b..cae510e 100644 (file)
@@ -4,10 +4,11 @@ import javax.enterprise.context.SessionScoped;
 \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
 @SessionScoped\r
-public class SearchCommand extends Pazpar2Command {\r
+public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand {\r
   \r
   private static final long serialVersionUID = -1888520867838597236L;\r
   private static Logger logger = Logger.getLogger(SearchCommand.class);\r
@@ -202,4 +203,9 @@ public class SearchCommand extends Pazpar2Command {
     return newCommand;\r
   }\r
 \r
+  @Override\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
+\r
 }\r
index 55a417e..11d624f 100644 (file)
@@ -1,8 +1,9 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class SettingsCommand extends Pazpar2Command {\r
+public class SettingsCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = 2291179325470387102L;\r
 \r
@@ -10,5 +11,18 @@ public class SettingsCommand extends Pazpar2Command {
     super("settings",stateMgr);\r
     // TODO Auto-generated constructor stub\r
   }\r
+  \r
+  public SettingsCommand copy () {\r
+    SettingsCommand newCommand = new SettingsCommand(stateMgr);\r
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+\r
+  @Override\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
 \r
 }\r
index f9e7931..375f600 100644 (file)
@@ -1,8 +1,9 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class ShowCommand extends Pazpar2Command {\r
+public class ShowCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = -8242768313266051307L;\r
 \r
@@ -99,4 +100,9 @@ public class ShowCommand extends Pazpar2Command {
     return newCommand;\r
   }\r
 \r
+  @Override\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
+\r
 }\r
index 6b885bc..0243315 100644 (file)
@@ -1,13 +1,28 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class StatCommand extends Pazpar2Command {\r
+public class StatCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = 3980630346114157336L;\r
 \r
   public StatCommand(StateManager stateMgr) {\r
     super("stat",stateMgr);\r
   }\r
+  \r
+  public StatCommand copy () {\r
+    StatCommand newCommand = new StatCommand(stateMgr);\r
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+\r
+  @Override\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
+\r
 \r
 }\r
index 3188b64..bc3e8c2 100644 (file)
@@ -1,8 +1,9 @@
 package com.indexdata.mkjsf.pazpar2.commands;\r
 \r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
 \r
-public class TermlistCommand extends Pazpar2Command {\r
+public class TermlistCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = -7067878552863021727L;\r
 \r
@@ -25,4 +26,20 @@ public class TermlistCommand extends Pazpar2Command {
   public String getNum () {\r
     return getParameterValue("num");\r
   }\r
+  \r
+  public TermlistCommand copy () {\r
+    TermlistCommand newCommand = new TermlistCommand(stateMgr);\r
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+\r
+  @Override\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
+  \r
+  \r
+\r
 }\r
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/AuthCommand.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/AuthCommand.java
new file mode 100644 (file)
index 0000000..698f265
--- /dev/null
@@ -0,0 +1,29 @@
+package com.indexdata.mkjsf.pazpar2.commands.sp;\r
+\r
+import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
+import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
+\r
+public class AuthCommand extends Pazpar2Command implements ServiceProxyCommand {\r
+\r
+  private static final long serialVersionUID = 5487611235664162578L;\r
+\r
+  public AuthCommand(StateManager stateMgr) {\r
+    super("auth", stateMgr);\r
+    // TODO Auto-generated constructor stub\r
+  }\r
+  \r
+  public AuthCommand copy () {\r
+    AuthCommand newCommand = new AuthCommand(stateMgr);\r
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+\r
+  @Override\r
+  public ServiceProxyCommand getSp() {\r
+    return this;\r
+  }\r
+\r
+\r
+}\r
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/RecordCommandSp.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/RecordCommandSp.java
new file mode 100644 (file)
index 0000000..2775ccb
--- /dev/null
@@ -0,0 +1,26 @@
+package com.indexdata.mkjsf.pazpar2.commands.sp;\r
+\r
+import java.io.Serializable;\r
+\r
+import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
+import com.indexdata.mkjsf.pazpar2.commands.RecordCommand;\r
+\r
+public class RecordCommandSp  implements Serializable, ServiceProxyCommand {\r
+\r
+  private static final long serialVersionUID = -3901864271733337221L;\r
+  private RecordCommand command = null;\r
+  \r
+  public RecordCommandSp(RecordCommand command) {    \r
+    this.command = command;\r
+  }\r
+  \r
+  public void setRecordquery (String recordQuery) {\r
+    command.setParameter(new CommandParameter("recordquery","=",recordQuery));\r
+  }\r
+  \r
+  public String getRecordquery() {\r
+    return command.getParameterValue("recordquery");\r
+  }\r
+\r
+\r
+}\r
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/ServiceProxyCommand.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/sp/ServiceProxyCommand.java
new file mode 100644 (file)
index 0000000..65a06d0
--- /dev/null
@@ -0,0 +1,5 @@
+package com.indexdata.mkjsf.pazpar2.commands.sp;\r
+\r
+public interface ServiceProxyCommand {\r
+\r
+}\r
index 520ca3e..fdf0e97 100644 (file)
@@ -12,9 +12,6 @@ import java.util.HashMap;
 import java.util.List;\r
 import java.util.Map;\r
 \r
-import javax.enterprise.context.SessionScoped;\r
-import javax.inject.Inject;\r
-\r
 import org.apache.http.HttpEntity;\r
 import org.apache.http.HttpResponse;\r
 import org.apache.http.StatusLine;\r
@@ -43,6 +40,7 @@ import com.indexdata.mkjsf.pazpar2.CommandResponse;
 import com.indexdata.mkjsf.pazpar2.SearchClient;\r
 import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
 import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
+import com.indexdata.mkjsf.pazpar2.commands.sp.AuthCommand;\r
 import com.indexdata.mkjsf.pazpar2.sp.auth.ServiceProxyUser;\r
 import com.indexdata.mkjsf.utils.Utils;\r
 \r
@@ -76,9 +74,9 @@ public class ServiceProxyClient implements SearchClient {
       config = configReader.getConfiguration(this);      \r
       serviceUrl = config.getMandatory(SERVICE_PROXY_URL);  \r
       this.initDocPaths = getMultiProperty(config.get(SP_INIT_DOC_PATHS));\r
-      checkAuth = new Pazpar2Command("auth",null);\r
+      checkAuth = new AuthCommand(null);\r
       checkAuth.setParameterInState(new CommandParameter("action","=","check"));\r
-      ipAuth = new Pazpar2Command("auth",null);\r
+      ipAuth = new AuthCommand(null);\r
       ipAuth.setParameterInState(new CommandParameter("action","=","ipauth"));\r
     } catch (ConfigurationException c) {\r
       c.printStackTrace();\r
@@ -98,7 +96,7 @@ public class ServiceProxyClient implements SearchClient {
   public boolean authenticate (ServiceProxyUser user) {\r
     try {      \r
       logger.info("Authenticating [" + user.getProperty("name") + "]");            \r
-      Pazpar2Command auth = new Pazpar2Command("auth",null);\r
+      Pazpar2Command auth = new AuthCommand(null);\r
       auth.setParametersInState(new CommandParameter("action","=","login"), \r
                                 new CommandParameter("username","=",user.getProperty("name")), \r
                                 new CommandParameter("password","=",user.getProperty("password")));                                \r