Javadoc
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / Pazpar2Commands.java
1 package com.indexdata.mkjsf.pazpar2.commands;\r
2 \r
3 import java.io.Serializable;\r
4 \r
5 import javax.enterprise.context.SessionScoped;\r
6 import javax.inject.Named;\r
7 \r
8 import org.apache.log4j.Logger;\r
9 \r
10 import com.indexdata.mkjsf.pazpar2.Pz2Service;\r
11 import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommands;\r
12 import com.indexdata.mkjsf.utils.Utils;\r
13 \r
14 /**\r
15  * Pazpar2Commands holds references to all Pazpar2 commands. \r
16  * <p>\r
17  * The Pazpar2Commands object itself is exposed to the UI as 'pzreq'. \r
18  * </p>\r
19  * <p>\r
20  * When the UI request a command it will be retrieved from the current state\r
21  * through the state manager, so that the command can trigger a mutation of \r
22  * the state if the user/UI modifies its parameters. \r
23  * </p>\r
24  * Examples:\r
25  * <ul>\r
26  *  <li>pzreq.show    - will retrieve the show command for editing or execution\r
27  *  <li>pzreq.sp.auth - will retrieve the Service Proxy extension command 'auth'\r
28  * </ul>\r
29  * \r
30  * @author Niels Erik\r
31  *\r
32  */\r
33 @SessionScoped @Named\r
34 public class Pazpar2Commands implements Serializable {\r
35 \r
36   private static final long serialVersionUID = -5172466320351302413L;\r
37   private static Logger logger = Logger.getLogger(Pazpar2Commands.class);\r
38   \r
39   public static final String INIT =     "init";\r
40   public static final String PING =     "ping";\r
41   public static final String SETTINGS = "settings";\r
42   public static final String SEARCH =   "search";\r
43   public static final String STAT =     "stat";\r
44   public static final String SHOW =     "show";\r
45   public static final String RECORD =   "record";\r
46   public static final String TERMLIST = "termlist";\r
47   public static final String BYTARGET = "bytarget";  \r
48   private ServiceProxyCommands sp = null;    \r
49   \r
50   public Pazpar2Commands() {\r
51     logger.info("Initializing Pazpar2Commands [" + Utils.objectId(this) + "]");   \r
52   }\r
53   \r
54   /**\r
55    * \r
56    * @return init command from current state\r
57    */\r
58   public InitCommand getInit() {\r
59     return (InitCommand) (Pz2Service.get().getStateMgr().getCommand(INIT));    \r
60   }\r
61     \r
62   /** \r
63    * \r
64    * @return ping command from current state \r
65    */\r
66   public PingCommand getPing() {\r
67     return (PingCommand) (Pz2Service.get().getStateMgr().getCommand(PING));\r
68   }\r
69   \r
70   /**\r
71    * \r
72    * @return settings command from current state\r
73    */\r
74   public SettingsCommand getSettings() {\r
75     return (SettingsCommand) (Pz2Service.get().getStateMgr().getCommand(SETTINGS));\r
76   }\r
77 \r
78   /**\r
79    * \r
80    * @return search command from current state\r
81    */\r
82   public SearchCommand getSearch() {\r
83     return (SearchCommand) (Pz2Service.get().getStateMgr().getCommand(SEARCH));\r
84   }\r
85   \r
86   /**\r
87    * \r
88    * @return stat command from current state\r
89    */\r
90   public StatCommand getStat() {\r
91     return (StatCommand) (Pz2Service.get().getStateMgr().getCommand(STAT));\r
92   }\r
93   \r
94   /**\r
95    * \r
96    * @return show command from current state\r
97    */\r
98   public ShowCommand getShow() {\r
99     return (ShowCommand) (Pz2Service.get().getStateMgr().getCommand(SHOW));\r
100   }\r
101     \r
102   /**\r
103    * \r
104    * @return record command from current state\r
105    */\r
106   public RecordCommand getRecord() {\r
107     return (RecordCommand) (Pz2Service.get().getStateMgr().getCommand(RECORD));\r
108   }\r
109 \r
110   /**\r
111    * \r
112    * @return termlist command from current state\r
113    */\r
114   public TermlistCommand getTermlist() {\r
115     return (TermlistCommand) (Pz2Service.get().getStateMgr().getCommand(TERMLIST));\r
116   }\r
117   \r
118   /**\r
119    * \r
120    * @return bytarget command from current state\r
121    */\r
122   public BytargetCommand getBytarget() {\r
123     return (BytargetCommand) (Pz2Service.get().getStateMgr().getCommand(BYTARGET));\r
124   }\r
125   \r
126   /**\r
127    * Generically retrieves any command\r
128    * \r
129    * @param name name of command to retrieve\r
130    * @return command of the given type\r
131    */\r
132   public Pazpar2Command getCommand(String name) {    \r
133     return Pz2Service.get().getStateMgr().getCommand(name);\r
134   }\r
135   \r
136   /**\r
137    * Gets the object holding references to Service Proxy-only commands.\r
138    * @return\r
139    */\r
140   public ServiceProxyCommands getSp() {\r
141     if (sp == null) {\r
142       sp = new ServiceProxyCommands(Pz2Service.get().getStateMgr());\r
143     }\r
144     return sp;\r
145   }\r
146       \r
147 }\r