--- /dev/null
+package com.indexdata.mkjsf.pazpar2.commands;\r
+\r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
+\r
+\r
+/**\r
+ * Represents a Pazpar2 <code>show</code> command, can be accessed by <code>pzreq.show</code> \r
+ * \r
+ * @author Niels Erik\r
+ *\r
+ */\r
+public class ShowCommand extends Pazpar2Command implements ServiceProxyCommand {\r
+\r
+ private static final long serialVersionUID = -8242768313266051307L;\r
+\r
+ public ShowCommand() {\r
+ super("show");\r
+ setParameterInState(new CommandParameter("start","=","0"));\r
+ }\r
+\r
+ /**\r
+ * Sets Pazpar2 parameter <code>sort</code>. See Pazpar2 documentation for details. \r
+ */\r
+ public void setSort (String sort) {\r
+ setParameter(new CommandParameter("sort","=",sort));\r
+ }\r
+ \r
+ /**\r
+ * Gets parameter value for <code>sort</cod>\r
+ */\r
+ public String getSort () {\r
+ return getParameter("sort") != null ? getParameter("sort").value : "relevance";\r
+ }\r
+ \r
+ /**\r
+ * Sets the number of records that pazpar2 should show at a time. Is \r
+ * followed by an update of the show data object from pazpar2. \r
+ * \r
+ * To be used by the UI for paging. After setting page size the parts\r
+ * of the UI that displays 'show' data should be rendered. \r
+ * \r
+ * @param perPageOption i.e. 10, default is 20.\r
+ */\r
+ public void setPageSize (String perPageOption) { \r
+ setParameters(new CommandParameter("num","=",perPageOption),\r
+ new CommandParameter("start","=",0));\r
+ }\r
+ \r
+ /**\r
+ * Retrieves the currently defined number of items to show at a time\r
+ * \r
+ * @return number of result records that will be shown from pazpar2\r
+ */\r
+ public String getPageSize () {\r
+ return getParameter("num") != null ? getParameter("num").value : "20";\r
+ }\r
+ \r
+ /**\r
+ * Sets Pazpar2 parameter <code>start</code>. See Pazpar2 documentation for details. \r
+ */\r
+ public void setStart (int start) { \r
+ setParameter(new CommandParameter("start","=",start)); \r
+ }\r
+ \r
+ /**\r
+ * Retrieves the sequence number of the record that pazpaz2 will return as\r
+ * the first record in 'show'\r
+ * \r
+ * @return sequence number of the first record to be shown (numbering starting at '0')\r
+ * \r
+ */\r
+ public int getStart() {\r
+ return getParameter("start") != null ? Integer.parseInt(getParameter("start").value) : 0;\r
+ }\r
+ \r
+ /**\r
+ * Sets Pazpar2 parameter <code>num</code>. See Pazpar2 documentation for details. \r
+ */\r
+ public void setNum (int num) {\r
+ setParameter(new CommandParameter("num","=",num));\r
+ }\r
+ \r
+ /** \r
+ * Get the parameter value for <code>num</code>\r
+ */\r
+ public int getNum () {\r
+ return getParameter("num") != null ? Integer.parseInt(getParameter("num").value) : 0;\r
+ }\r
+ \r
+ /**\r
+ * Sets Pazpar2 parameter <code>block</code>. See Pazpar2 documentation for details. \r
+ */\r
+ public void setBlock(String block) {\r
+ setParameterInState(new CommandParameter("block","=",block));\r
+ }\r
+\r
+ /** \r
+ * Get the parameter value for <code>block</code>\r
+ */\r
+ public String getBlock() {\r
+ return getParameterValue("block");\r
+ }\r
+ \r
+ /**\r
+ * Sets Pazpar2 parameter <code>mergekey</code>. See Pazpar2 documentation for details. \r
+ */\r
+ public void setMergekey (String mergekey) {\r
+ setParameter(new CommandParameter("mergekey","=",mergekey));\r
+ }\r
+ \r
+ /** \r
+ * Get the parameter value for <code>mergekey</code>\r
+ */\r
+ public String getMergekey () {\r
+ return getParameterValue("mergekey");\r
+ }\r
+ \r
+ /**\r
+ * Sets Pazpar2 parameter <code>rank</code>. See Pazpar2 documentation for details. \r
+ */\r
+ public void setRank (String rank) {\r
+ setParameter(new CommandParameter("rank","=",rank));\r
+ }\r
+ \r
+ /** \r
+ * Get the parameter value for <code>rank</code>\r
+ */\r
+ public String getRank () {\r
+ return getParameterValue("rank");\r
+ }\r
+\r
+ \r
+ public ShowCommand copy () {\r
+ ShowCommand newCommand = new ShowCommand();\r
+ for (String parameterName : parameters.keySet()) {\r
+ newCommand.setParameterInState(parameters.get(parameterName).copy()); \r
+ } \r
+ return newCommand;\r
+ }\r
+\r
+ @Override\r
+ public ServiceProxyCommand getSp() {\r
+ return this;\r
+ }\r
+\r
+ @Override\r
+ public boolean spOnly() {\r
+ return false;\r
+ }\r
+\r
+}\r