Wiring of pazpar2 info command and response
[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 <code>pzreq</code>. \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  * <p>Examples:</p>\r
25  * <ul>\r
26  *  <li><code>pzreq.show</code>    - will retrieve the show command for editing or execution\r
27  *  <li><code>pzreq.sp.auth</code> - 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   public static final String INFO =     "info";\r
49   private ServiceProxyCommands sp = null;    \r
50   \r
51   public Pazpar2Commands() {\r
52     logger.info("Initializing Pazpar2Commands [" + Utils.objectId(this) + "]");   \r
53   }\r
54   \r
55   /**\r
56    * init command - referenced from UI as <code>pzreq.init</code>\r
57    * \r
58    * @return init command from current state\r
59    */\r
60   public InitCommand getInit() {\r
61     return (InitCommand) (Pz2Service.get().getStateMgr().getCommand(INIT));    \r
62   }\r
63     \r
64   /** \r
65    * ping command - referenced from UI as <code>pzreq.ping</code>\r
66    * \r
67    * @return ping command from current state \r
68    */\r
69   public PingCommand getPing() {\r
70     return (PingCommand) (Pz2Service.get().getStateMgr().getCommand(PING));\r
71   }\r
72   \r
73   /**\r
74    * settings command - referenced from UI as <code>pzreq.settings</code>\r
75    * \r
76    * @return settings command from current state\r
77    */\r
78   public SettingsCommand getSettings() {\r
79     return (SettingsCommand) (Pz2Service.get().getStateMgr().getCommand(SETTINGS));\r
80   }\r
81 \r
82   /**\r
83    * \r
84    * @return search command from current state\r
85    */\r
86   public SearchCommand getSearch() {\r
87     return (SearchCommand) (Pz2Service.get().getStateMgr().getCommand(SEARCH));\r
88   }\r
89   \r
90   /**\r
91    * \r
92    * @return stat command from current state\r
93    */\r
94   public StatCommand getStat() {\r
95     return (StatCommand) (Pz2Service.get().getStateMgr().getCommand(STAT));\r
96   }\r
97   \r
98   /**\r
99    * \r
100    * @return show command from current state\r
101    */\r
102   public ShowCommand getShow() {\r
103     return (ShowCommand) (Pz2Service.get().getStateMgr().getCommand(SHOW));\r
104   }\r
105     \r
106   /**\r
107    * \r
108    * @return record command from current state\r
109    */\r
110   public RecordCommand getRecord() {\r
111     return (RecordCommand) (Pz2Service.get().getStateMgr().getCommand(RECORD));\r
112   }\r
113 \r
114   /**\r
115    * \r
116    * @return termlist command from current state\r
117    */\r
118   public TermlistCommand getTermlist() {\r
119     return (TermlistCommand) (Pz2Service.get().getStateMgr().getCommand(TERMLIST));\r
120   }\r
121   \r
122   /**\r
123    * \r
124    * @return bytarget command from current state\r
125    */\r
126   public BytargetCommand getBytarget() {\r
127     return (BytargetCommand) (Pz2Service.get().getStateMgr().getCommand(BYTARGET));\r
128   }\r
129   \r
130   /**\r
131    *\r
132    * @return info command from current state\r
133    */\r
134   public InfoCommand getInfo () {\r
135     return (InfoCommand) (Pz2Service.get().getStateMgr().getCommand(INFO));\r
136   }\r
137 \r
138   /**\r
139    * Generically retrieves any command\r
140    * \r
141    * @param name name of command to retrieve\r
142    * @return command of the given type\r
143    */\r
144   public Pazpar2Command getCommand(String name) {\r
145     return Pz2Service.get().getStateMgr().getCommand(name);\r
146   }\r
147   \r
148   /**\r
149    * Gets the object holding references to Service Proxy-only commands.\r
150    * @return\r
151    */\r
152   public ServiceProxyCommands getSp() {\r
153     if (sp == null) {\r
154       sp = new ServiceProxyCommands(Pz2Service.get().getStateMgr());\r
155     }\r
156     return sp;\r
157   }\r
158       \r
159 }\r