Merge branch 'master' of ssh://git.indexdata.com/home/git/private/mkjsf.git into...
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / ShowCommand.java
diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/ShowCommand.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/ShowCommand.java
new file mode 100644 (file)
index 0000000..04a87d8
--- /dev/null
@@ -0,0 +1,151 @@
+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