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