--- /dev/null
+package com.indexdata.mkjsf.pazpar2.commands;\r
+\r
+import java.io.Serializable;\r
+\r
+import javax.enterprise.context.SessionScoped;\r
+import javax.inject.Named;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import com.indexdata.mkjsf.pazpar2.Pz2Service;\r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommands;\r
+import com.indexdata.mkjsf.utils.Utils;\r
+\r
+/**\r
+ * Pazpar2Commands holds references to all Pazpar2 commands. \r
+ * <p>\r
+ * The Pazpar2Commands object itself is exposed to the UI as <code>pzreq</code>. \r
+ * </p>\r
+ * <p>\r
+ * When the UI request a command it will be retrieved from the current state\r
+ * through the state manager, so that the command can trigger a mutation of \r
+ * the state if the user/UI modifies its parameters. \r
+ * </p>\r
+ * <p>Examples:</p>\r
+ * <ul>\r
+ * <li><code>pzreq.show</code> - will retrieve the show command for editing or execution\r
+ * <li><code>pzreq.sp.auth</code> - will retrieve the Service Proxy extension command 'auth'\r
+ * </ul>\r
+ * \r
+ * @author Niels Erik\r
+ *\r
+ */\r
+@SessionScoped @Named\r
+public class Pazpar2Commands implements Serializable {\r
+\r
+ private static final long serialVersionUID = -5172466320351302413L;\r
+ private static Logger logger = Logger.getLogger(Pazpar2Commands.class);\r
+ \r
+ public static final String INIT = "init";\r
+ public static final String PING = "ping";\r
+ public static final String SETTINGS = "settings";\r
+ public static final String SEARCH = "search";\r
+ public static final String STAT = "stat";\r
+ public static final String SHOW = "show";\r
+ public static final String RECORD = "record";\r
+ public static final String TERMLIST = "termlist";\r
+ public static final String BYTARGET = "bytarget"; \r
+ private ServiceProxyCommands sp = null; \r
+ \r
+ public Pazpar2Commands() {\r
+ logger.info("Initializing Pazpar2Commands [" + Utils.objectId(this) + "]"); \r
+ }\r
+ \r
+ /**\r
+ * init command - referenced from UI as <code>pzreq.init</code>\r
+ * \r
+ * @return init command from current state\r
+ */\r
+ public InitCommand getInit() {\r
+ return (InitCommand) (Pz2Service.get().getStateMgr().getCommand(INIT)); \r
+ }\r
+ \r
+ /** \r
+ * ping command - referenced from UI as <code>pzreq.ping</code>\r
+ * \r
+ * @return ping command from current state \r
+ */\r
+ public PingCommand getPing() {\r
+ return (PingCommand) (Pz2Service.get().getStateMgr().getCommand(PING));\r
+ }\r
+ \r
+ /**\r
+ * settings command - referenced from UI as <code>pzreq.settings</code>\r
+ * \r
+ * @return settings command from current state\r
+ */\r
+ public SettingsCommand getSettings() {\r
+ return (SettingsCommand) (Pz2Service.get().getStateMgr().getCommand(SETTINGS));\r
+ }\r
+\r
+ /**\r
+ * \r
+ * @return search command from current state\r
+ */\r
+ public SearchCommand getSearch() {\r
+ return (SearchCommand) (Pz2Service.get().getStateMgr().getCommand(SEARCH));\r
+ }\r
+ \r
+ /**\r
+ * \r
+ * @return stat command from current state\r
+ */\r
+ public StatCommand getStat() {\r
+ return (StatCommand) (Pz2Service.get().getStateMgr().getCommand(STAT));\r
+ }\r
+ \r
+ /**\r
+ * \r
+ * @return show command from current state\r
+ */\r
+ public ShowCommand getShow() {\r
+ return (ShowCommand) (Pz2Service.get().getStateMgr().getCommand(SHOW));\r
+ }\r
+ \r
+ /**\r
+ * \r
+ * @return record command from current state\r
+ */\r
+ public RecordCommand getRecord() {\r
+ return (RecordCommand) (Pz2Service.get().getStateMgr().getCommand(RECORD));\r
+ }\r
+\r
+ /**\r
+ * \r
+ * @return termlist command from current state\r
+ */\r
+ public TermlistCommand getTermlist() {\r
+ return (TermlistCommand) (Pz2Service.get().getStateMgr().getCommand(TERMLIST));\r
+ }\r
+ \r
+ /**\r
+ * \r
+ * @return bytarget command from current state\r
+ */\r
+ public BytargetCommand getBytarget() {\r
+ return (BytargetCommand) (Pz2Service.get().getStateMgr().getCommand(BYTARGET));\r
+ }\r
+ \r
+ /**\r
+ * Generically retrieves any command\r
+ * \r
+ * @param name name of command to retrieve\r
+ * @return command of the given type\r
+ */\r
+ public Pazpar2Command getCommand(String name) { \r
+ return Pz2Service.get().getStateMgr().getCommand(name);\r
+ }\r
+ \r
+ /**\r
+ * Gets the object holding references to Service Proxy-only commands.\r
+ * @return\r
+ */\r
+ public ServiceProxyCommands getSp() {\r
+ if (sp == null) {\r
+ sp = new ServiceProxyCommands(Pz2Service.get().getStateMgr());\r
+ }\r
+ return sp;\r
+ }\r
+ \r
+}\r