X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fcommands%2FPazpar2Commands.java;h=b847e1776080ba7d09d5047027125428d0787b5d;hb=969f879c807d127cbf47c5656771fcf5adc27a02;hp=9e04d6e13ea4878249ccf41a7063b8f812be3772;hpb=ccb28ae8d5d46d29c40bd8b1637522c212b80636;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Commands.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Commands.java index 9e04d6e..b847e17 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Commands.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/Pazpar2Commands.java @@ -2,22 +2,40 @@ package com.indexdata.mkjsf.pazpar2.commands; import java.io.Serializable; -import javax.annotation.PostConstruct; import javax.enterprise.context.SessionScoped; -import javax.inject.Inject; import javax.inject.Named; import org.apache.log4j.Logger; -import com.indexdata.mkjsf.pazpar2.state.StateManager; +import com.indexdata.mkjsf.pazpar2.Pz2Service; +import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommands; import com.indexdata.mkjsf.utils.Utils; -@Named("pzreq") @SessionScoped +/** + * Pazpar2Commands holds references to all Pazpar2 commands. + *

+ * The Pazpar2Commands object itself is exposed to the UI as pzreq. + *

+ *

+ * When the UI request a command it will be retrieved from the current state + * through the state manager, so that the command can trigger a mutation of + * the state if the user/UI modifies its parameters. + *

+ *

Examples:

+ * + * + * @author Niels Erik + * + */ +@SessionScoped @Named public class Pazpar2Commands implements Serializable { private static final long serialVersionUID = -5172466320351302413L; private static Logger logger = Logger.getLogger(Pazpar2Commands.class); - + public static final String INIT = "init"; public static final String PING = "ping"; public static final String SETTINGS = "settings"; @@ -26,57 +44,107 @@ public class Pazpar2Commands implements Serializable { public static final String SHOW = "show"; public static final String RECORD = "record"; public static final String TERMLIST = "termlist"; - public static final String BYTARGET = "bytarget"; - - @Inject StateManager stateMgr; + public static final String BYTARGET = "bytarget"; + private ServiceProxyCommands sp = null; public Pazpar2Commands() { - logger.info("Initializing Pazpar2Commands [" + Utils.objectId(this) + "]"); + logger.info("Initializing Pazpar2Commands [" + Utils.objectId(this) + "]"); } - @PostConstruct - public void postConstruct() { - logger.info("in post-construct stateMgr is " + stateMgr); - } - + /** + * init command - referenced from UI as pzreq.init + * + * @return init command from current state + */ public InitCommand getInit() { - return (InitCommand) (stateMgr.getCommand(INIT)); + return (InitCommand) (Pz2Service.get().getStateMgr().getCommand(INIT)); } - + + /** + * ping command - referenced from UI as pzreq.ping + * + * @return ping command from current state + */ public PingCommand getPing() { - return (PingCommand) (stateMgr.getCommand(PING)); + return (PingCommand) (Pz2Service.get().getStateMgr().getCommand(PING)); } + /** + * settings command - referenced from UI as pzreq.settings + * + * @return settings command from current state + */ public SettingsCommand getSettings() { - return (SettingsCommand) (stateMgr.getCommand(SETTINGS)); + return (SettingsCommand) (Pz2Service.get().getStateMgr().getCommand(SETTINGS)); } + /** + * + * @return search command from current state + */ public SearchCommand getSearch() { - return (SearchCommand) (stateMgr.getCommand(SEARCH)); + return (SearchCommand) (Pz2Service.get().getStateMgr().getCommand(SEARCH)); } + /** + * + * @return stat command from current state + */ public StatCommand getStat() { - return (StatCommand) (stateMgr.getCommand(STAT)); + return (StatCommand) (Pz2Service.get().getStateMgr().getCommand(STAT)); } + /** + * + * @return show command from current state + */ public ShowCommand getShow() { - return (ShowCommand) (stateMgr.getCommand(SHOW)); + return (ShowCommand) (Pz2Service.get().getStateMgr().getCommand(SHOW)); } + /** + * + * @return record command from current state + */ public RecordCommand getRecord() { - return (RecordCommand) (stateMgr.getCommand(RECORD)); + return (RecordCommand) (Pz2Service.get().getStateMgr().getCommand(RECORD)); } + /** + * + * @return termlist command from current state + */ public TermlistCommand getTermlist() { - return (TermlistCommand) (stateMgr.getCommand(TERMLIST)); + return (TermlistCommand) (Pz2Service.get().getStateMgr().getCommand(TERMLIST)); } + /** + * + * @return bytarget command from current state + */ public BytargetCommand getBytarget() { - return (BytargetCommand) (stateMgr.getCommand(BYTARGET)); + return (BytargetCommand) (Pz2Service.get().getStateMgr().getCommand(BYTARGET)); + } + + /** + * Generically retrieves any command + * + * @param name name of command to retrieve + * @return command of the given type + */ + public Pazpar2Command getCommand(String name) { + return Pz2Service.get().getStateMgr().getCommand(name); } - public Pazpar2Command getCommand(String name) { - return stateMgr.getCommand(name); + /** + * Gets the object holding references to Service Proxy-only commands. + * @return + */ + public ServiceProxyCommands getSp() { + if (sp == null) { + sp = new ServiceProxyCommands(Pz2Service.get().getStateMgr()); + } + return sp; } }