b847e1776080ba7d09d5047027125428d0787b5d
[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   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    * init command - referenced from UI as <code>pzreq.init</code>\r
56    * \r
57    * @return init command from current state\r
58    */\r
59   public InitCommand getInit() {\r
60     return (InitCommand) (Pz2Service.get().getStateMgr().getCommand(INIT));    \r
61   }\r
62     \r
63   /** \r
64    * ping command - referenced from UI as <code>pzreq.ping</code>\r
65    * \r
66    * @return ping command from current state \r
67    */\r
68   public PingCommand getPing() {\r
69     return (PingCommand) (Pz2Service.get().getStateMgr().getCommand(PING));\r
70   }\r
71   \r
72   /**\r
73    * settings command - referenced from UI as <code>pzreq.settings</code>\r
74    * \r
75    * @return settings command from current state\r
76    */\r
77   public SettingsCommand getSettings() {\r
78     return (SettingsCommand) (Pz2Service.get().getStateMgr().getCommand(SETTINGS));\r
79   }\r
80 \r
81   /**\r
82    * \r
83    * @return search command from current state\r
84    */\r
85   public SearchCommand getSearch() {\r
86     return (SearchCommand) (Pz2Service.get().getStateMgr().getCommand(SEARCH));\r
87   }\r
88   \r
89   /**\r
90    * \r
91    * @return stat command from current state\r
92    */\r
93   public StatCommand getStat() {\r
94     return (StatCommand) (Pz2Service.get().getStateMgr().getCommand(STAT));\r
95   }\r
96   \r
97   /**\r
98    * \r
99    * @return show command from current state\r
100    */\r
101   public ShowCommand getShow() {\r
102     return (ShowCommand) (Pz2Service.get().getStateMgr().getCommand(SHOW));\r
103   }\r
104     \r
105   /**\r
106    * \r
107    * @return record command from current state\r
108    */\r
109   public RecordCommand getRecord() {\r
110     return (RecordCommand) (Pz2Service.get().getStateMgr().getCommand(RECORD));\r
111   }\r
112 \r
113   /**\r
114    * \r
115    * @return termlist command from current state\r
116    */\r
117   public TermlistCommand getTermlist() {\r
118     return (TermlistCommand) (Pz2Service.get().getStateMgr().getCommand(TERMLIST));\r
119   }\r
120   \r
121   /**\r
122    * \r
123    * @return bytarget command from current state\r
124    */\r
125   public BytargetCommand getBytarget() {\r
126     return (BytargetCommand) (Pz2Service.get().getStateMgr().getCommand(BYTARGET));\r
127   }\r
128   \r
129   /**\r
130    * Generically retrieves any command\r
131    * \r
132    * @param name name of command to retrieve\r
133    * @return command of the given type\r
134    */\r
135   public Pazpar2Command getCommand(String name) {    \r
136     return Pz2Service.get().getStateMgr().getCommand(name);\r
137   }\r
138   \r
139   /**\r
140    * Gets the object holding references to Service Proxy-only commands.\r
141    * @return\r
142    */\r
143   public ServiceProxyCommands getSp() {\r
144     if (sp == null) {\r
145       sp = new ServiceProxyCommands(Pz2Service.get().getStateMgr());\r
146     }\r
147     return sp;\r
148   }\r
149       \r
150 }\r