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
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
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
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
\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
}\r
\r
public String getParameterValue(String parameterName) {\r
- return getParameter(parameterName).getValueWithExpressions();\r
+ return getParameter(parameterName)==null ? "" : getParameter(parameterName).getValueWithExpressions();\r
\r
}\r
\r
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
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
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
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
} \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
\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
return newCommand;\r
}\r
\r
+ @Override\r
+ public ServiceProxyCommand getSp() {\r
+ return this;\r
+ }\r
+\r
}\r
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
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
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
return newCommand;\r
}\r
\r
+ @Override\r
+ public ServiceProxyCommand getSp() {\r
+ return this;\r
+ }\r
+\r
}\r
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
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
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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+package com.indexdata.mkjsf.pazpar2.commands.sp;\r
+\r
+public interface ServiceProxyCommand {\r
+\r
+}\r
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
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
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
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