Adds mergekey parameter to search and show
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / ShowCommand.java
1 package com.indexdata.mkjsf.pazpar2.commands;\r
2 \r
3 import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
4 import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
5 \r
6 public class ShowCommand extends Pazpar2Command implements ServiceProxyCommand {\r
7 \r
8   private static final long serialVersionUID = -8242768313266051307L;\r
9 \r
10   public ShowCommand(StateManager stateMgr) {\r
11     super("show",stateMgr);\r
12     setParameterInState(new CommandParameter("start","=","0"));\r
13   }\r
14 \r
15   /**\r
16    * Sets the sort order for results, the updates the 'show' data object\r
17    * from pazpar2. Set valid sort options in the documentation for pazpar2.\r
18    * \r
19    * The parts of the UI that display 'show' data should be rendered following\r
20    * this request.\r
21    * \r
22    * @param sortOption\r
23    */\r
24   public void setSort (String sort) {\r
25     setParameter(new CommandParameter("sort","=",sort));\r
26   }\r
27   \r
28   /**\r
29    * Retrieves the current sort order for results\r
30    * @return sort order - i.e. 'relevance'\r
31    */\r
32   public String getSort () {\r
33     return getParameter("sort") != null ? getParameter("sort").value : "relevance";\r
34   }\r
35   \r
36   /**\r
37    * Sets the number of records that pazpar2 should show at a time. Is \r
38    * followed by an update of the show data object from pazpar2.  \r
39    * \r
40    * To be used by the UI for paging. After setting page size the parts\r
41    * of the UI that displays 'show' data should be rendered. \r
42    * \r
43    * @param perPageOption i.e. 10, default is 20.\r
44    */\r
45   public void setPageSize (String perPageOption) {    \r
46     setParameters(new CommandParameter("num","=",perPageOption),\r
47                   new CommandParameter("start","=",0));\r
48   }\r
49   \r
50   /**\r
51    * Retrieves the currently defined number of items to show at a time\r
52    * \r
53    * @return number of result records that will be shown from pazpar2\r
54    */\r
55   public String getPageSize () {\r
56     return getParameter("num") != null ? getParameter("num").value : "20";\r
57   }\r
58   \r
59   /**\r
60    * Sets the first record to show - starting at record '0'. After setting\r
61    * first record number, the 'show' data object will be updated from pazpar2,\r
62    * and the parts of the UI displaying show data should be re-rendered.\r
63    * \r
64    * To be used by the UI for paging.\r
65    * \r
66    * @param start first record to show\r
67    */\r
68   public void setStart (int start) {    \r
69     setParameter(new CommandParameter("start","=",start));      \r
70   }\r
71   \r
72   /**\r
73    * Retrieves the sequence number of the record that pazpaz2 will return as\r
74    * the first record in 'show'\r
75    * \r
76    * @return sequence number of the first record to be shown (numbering starting at '0')\r
77    * \r
78    */\r
79   public int getStart() {\r
80     return getParameter("start") != null ? Integer.parseInt(getParameter("start").value) : 0;\r
81   }\r
82   \r
83   public void setNum (int num) {\r
84     setParameter(new CommandParameter("num","=",num));\r
85   }\r
86   \r
87   public int getNum () {\r
88     return getParameter("num") != null ? Integer.parseInt(getParameter("num").value) : 0;\r
89   }\r
90   \r
91   public void setBlock(String block) {\r
92     setParameterInState(new CommandParameter("block","=",block));\r
93   }\r
94   \r
95   public String getBlock() {\r
96     return getParameterValue("block");\r
97   }\r
98   \r
99   public void setMergekey (String mergekey) {\r
100     setParameter(new CommandParameter("mergekey","=",mergekey));\r
101   }\r
102   \r
103   public String getMergekey () {\r
104     return getParameterValue("mergekey");\r
105   }\r
106   \r
107   public ShowCommand copy () {\r
108     ShowCommand newCommand = new ShowCommand(stateMgr);\r
109     for (String parameterName : parameters.keySet()) {\r
110       newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
111     }    \r
112     return newCommand;\r
113   }\r
114 \r
115   @Override\r
116   public ServiceProxyCommand getSp() {\r
117     return this;\r
118   }\r
119 \r
120   @Override\r
121   public boolean spOnly() {\r
122     return false;\r
123   }\r
124 \r
125 }\r