Javadoc
[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.commands.sp.ShowCommandSp;\r
5 \r
6 \r
7 /**\r
8  * <b><code>show</code></b> Pazpar2 command, referenced as: <code>pzreq.show</code> \r
9  * \r
10  * @author Niels Erik\r
11  *\r
12  */\r
13 public class ShowCommand extends Pazpar2Command implements ServiceProxyCommand {\r
14 \r
15   private static final long serialVersionUID = -8242768313266051307L;\r
16 \r
17   public ShowCommand() {\r
18     super("show");\r
19     setParameterInState(new CommandParameter("start","=","0"));\r
20   }\r
21 \r
22   /**\r
23    * Sets Pazpar2 parameter <code>sort</code>. See Pazpar2 documentation for details. \r
24    */\r
25   public void setSort (String sort) {\r
26     setParameter(new CommandParameter("sort","=",sort));\r
27   }\r
28   \r
29   /**\r
30    * Gets parameter value for <code>sort</cod>\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 Pazpar2 parameter <code>start</code>. See Pazpar2 documentation for details. \r
61    */\r
62   public void setStart (int start) {    \r
63     setParameter(new CommandParameter("start","=",start));      \r
64   }\r
65   \r
66   /**\r
67    * Retrieves the sequence number of the record that pazpaz2 will return as\r
68    * the first record in 'show'\r
69    * \r
70    * @return sequence number of the first record to be shown (numbering starting at '0')\r
71    * \r
72    */\r
73   public int getStart() {\r
74     return getParameter("start") != null ? Integer.parseInt(getParameter("start").value) : 0;\r
75   }\r
76   \r
77   /**\r
78    * Sets Pazpar2 parameter <code>num</code>. See Pazpar2 documentation for details. \r
79    */\r
80   public void setNum (int num) {\r
81     setParameter(new CommandParameter("num","=",num));\r
82   }\r
83     \r
84   /** \r
85    * Get the parameter value for <code>num</code>\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   /**\r
92    * Sets Pazpar2 parameter <code>block</code>. See Pazpar2 documentation for details. \r
93    */\r
94   public void setBlock(String block) {\r
95     setParameterInState(new CommandParameter("block","=",block));\r
96   }\r
97 \r
98   /** \r
99    * Get the parameter value for <code>block</code>\r
100    */\r
101   public String getBlock() {\r
102     return getParameterValue("block");\r
103   }\r
104   \r
105   /**\r
106    * Sets Pazpar2 parameter <code>mergekey</code>. See Pazpar2 documentation for details. \r
107    */\r
108   public void setMergekey (String mergekey) {\r
109     setParameter(new CommandParameter("mergekey","=",mergekey));\r
110   }\r
111   \r
112   /** \r
113    * Get the parameter value for <code>mergekey</code>\r
114    */\r
115   public String getMergekey () {\r
116     return getParameterValue("mergekey");\r
117   }\r
118   \r
119   /**\r
120    * Sets Pazpar2 parameter <code>rank</code>. See Pazpar2 documentation for details. \r
121    */\r
122   public void setRank (String rank) {\r
123     setParameter(new CommandParameter("rank","=",rank));\r
124   }\r
125   \r
126   /** \r
127    * Get the parameter value for <code>rank</code>\r
128    */\r
129   public String getRank () {\r
130     return getParameterValue("rank");\r
131   }\r
132 \r
133   \r
134   public ShowCommand copy () {\r
135     ShowCommand newCommand = new ShowCommand();\r
136     for (String parameterName : parameters.keySet()) {\r
137       newCommand.setParameterInState(parameters.get(parameterName).copy());      \r
138     }    \r
139     return newCommand;\r
140   }\r
141 \r
142   @Override\r
143   public ServiceProxyCommand getSp() {\r
144     return new ShowCommandSp(this);\r
145   }\r
146 \r
147   @Override\r
148   public boolean spOnly() {\r
149     return false;\r
150   }\r
151 \r
152 }\r