Adds more parameters to commands
authorNiels Erik G. Nielsen <nielserik@indexdata.com>
Sun, 14 Apr 2013 20:19:29 +0000 (16:19 -0400)
committerNiels Erik G. Nielsen <nielserik@indexdata.com>
Sun, 14 Apr 2013 20:19:29 +0000 (16:19 -0400)
To extend the Pazpar2 protocol support in form of named methods. It's possible,
though, to set 'unsupported' parameters with the generic
setParameter("command","param",param) method

src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2Bean.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/commands/InitCommand.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/commands/Pazpar2Command.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/commands/PingCommand.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/commands/RecordCommand.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/commands/SearchCommand.java
src/main/java/com/indexdata/pz2utils4jsf/pazpar2/commands/ShowCommand.java

index ad684b3..65706a9 100644 (file)
@@ -20,7 +20,6 @@ import com.indexdata.pz2utils4jsf.errors.ConfigurationException;
 import com.indexdata.pz2utils4jsf.errors.ErrorHelper;\r
 import com.indexdata.pz2utils4jsf.errors.ErrorInterface;\r
 import com.indexdata.pz2utils4jsf.pazpar2.commands.CommandParameter;\r
-import com.indexdata.pz2utils4jsf.pazpar2.commands.CommandReadOnly;\r
 import com.indexdata.pz2utils4jsf.pazpar2.commands.Pazpar2Commands;\r
 import com.indexdata.pz2utils4jsf.pazpar2.data.Pazpar2ResponseData;\r
 import com.indexdata.pz2utils4jsf.pazpar2.data.Pazpar2ResponseParser;\r
@@ -169,7 +168,7 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable {
       pzresp.put("record", new RecordResponse());\r
       return "";\r
     } else {\r
-      pzreq.getRecord().setRecordId(recId);\r
+      pzreq.getRecord().setId(recId);\r
       return doCommand("record");\r
     }\r
   }\r
index 37fd8f1..09e1bee 100644 (file)
@@ -10,10 +10,22 @@ public class InitCommand extends Pazpar2Command {
     super("init",stateMgr);\r
   }\r
   \r
-  public void setClear(String clear) {    \r
+  public void setClear(String clear) { \r
+    setParameter(new CommandParameter("clear","=",clear));\r
   }\r
   \r
   public void setService(String serviceId) {    \r
+    setParameter(new CommandParameter("service","=",serviceId));\r
+  }\r
+  \r
+  @Override\r
+  public void setSession (String sessionId) {\r
+    throw new UnsupportedOperationException("Cannot set session id on init command");\r
+  }\r
+  \r
+  @Override\r
+  public String getSession () {\r
+    throw new UnsupportedOperationException("Cannot set or get session id on init command");\r
   }\r
 \r
 }\r
index e0680c7..296f2ef 100644 (file)
@@ -125,6 +125,15 @@ public class Pazpar2Command implements CommandReadOnly, Serializable  {
     return getParameter(parameterName).getEncodedQueryString();\r
   }\r
   \r
+  public void setSession (String sessionId) {\r
+    setParameter(new CommandParameter("session","=",sessionId));\r
+  }\r
+  \r
+  public String getSession() {\r
+    return getParameterValue("session");\r
+  }\r
+\r
+  \r
   \r
   \r
 }\r
index a182db1..e7eda38 100644 (file)
@@ -9,5 +9,5 @@ public class PingCommand extends Pazpar2Command {
   public PingCommand(StateManager stateMgr) {\r
     super("ping",stateMgr);    \r
   }\r
-\r
+  \r
 }\r
index 09e370c..a54433d 100644 (file)
@@ -10,11 +10,11 @@ public class RecordCommand extends Pazpar2Command {
     super("record",stateMgr);\r
   }\r
   \r
-  public void setRecordId(String recId) {\r
+  public void setId(String recId) {\r
     setParameter(new CommandParameter("id","=",recId));\r
   }\r
   \r
-  public String getRecordId () {\r
+  public String getId () {\r
     return getParameterValue("id");\r
   }    \r
 \r
index 1d2cb2b..4c6d9c5 100644 (file)
@@ -16,11 +16,7 @@ public class SearchCommand extends Pazpar2Command {
   public SearchCommand(StateManager stateMgr) {\r
     super("search",stateMgr);\r
   }\r
-  \r
-  public void setSession (String sessionId) {\r
-    setParameter(new CommandParameter("session","=",sessionId));\r
-  }\r
-  \r
+    \r
   public void setQuery(String query) {    \r
     setParameter(new CommandParameter("query","=",query));\r
   }\r
@@ -29,6 +25,69 @@ public class SearchCommand extends Pazpar2Command {
     return getParameter("query") == null ? null  : getParameter("query").getValueWithExpressions();\r
   }\r
   \r
+  public void setFilter(String filterExpression) {\r
+    setParameter(new CommandParameter("filter","=",filterExpression));\r
+  }\r
+  \r
+  public String getFilter() {\r
+    return getParameter("filter") == null ? null : getParameter("filter").getValueWithExpressions();\r
+  }\r
+  \r
+  public void addFilter(String filterExpression) {\r
+    // TODO: implement\r
+    if (hasParameterSet("filter")) {\r
+      setFilter(filterExpression);\r
+    } else {\r
+      getParameter("filter");\r
+    }\r
+    throw new UnsupportedOperationException("removeFilter(filterExpression) yet to be implemented.");\r
+  }\r
+  \r
+  public void removeFilters () {\r
+    removeParameter("filter");\r
+  }\r
+  \r
+  public void removeFilter(String filterExpression) {\r
+    // TODO: implement\r
+    throw new UnsupportedOperationException("removeFilter(filterExpression) yet to be implemented.");\r
+  }\r
+\r
+  public boolean hasFilter () {\r
+    return getFilter().length()>0;\r
+  }\r
+  \r
+  public void setLimit (String limitExpression) {\r
+    setParameter(new CommandParameter("limit","=",limitExpression));\r
+  }\r
+  \r
+  public String getLimit () {\r
+    return getParameterValue("limit");\r
+  }\r
+      \r
+  public void setStartrecs (String startrecs) {\r
+    setParameter(new CommandParameter("startrecs","=",startrecs));\r
+  }\r
+  \r
+  public String getStartrecs () {\r
+    return getParameterValue("startrecs");\r
+  }\r
+  \r
+  public void setMaxrecs (String maxrecs) {\r
+    setParameter(new CommandParameter("maxrecs","=",maxrecs));\r
+  }\r
+  \r
+  public String getMaxrecs () {\r
+    return getParameterValue("maxrecs");\r
+  }\r
+  \r
+  public void setSort () {\r
+    setParameter(new CommandParameter("sort","=","sort"));\r
+  }\r
+  \r
+  public String getSort () {\r
+    return getParameterValue("sort");\r
+  }\r
+  \r
   /**\r
    * Sets a facet, in CQL, to restrict the current results,\r
    * then executes the search \r
@@ -75,17 +134,6 @@ public class SearchCommand extends Pazpar2Command {
     }\r
   }\r
   \r
-  public void setFilter(String filterExpression) {\r
-    setParameter(new CommandParameter("filter","=",filterExpression));\r
-  }\r
-  \r
-  public String getFilter() {\r
-    return getParameter("filter") == null ? null : getParameter("filter").getValueWithExpressions();\r
-  }\r
-  \r
-  public boolean hasFilter () {\r
-    return getFilter().length()>0;\r
-  }\r
   \r
   /**\r
    * Adds a single target filter to restrict the current query by, \r
@@ -141,28 +189,6 @@ public class SearchCommand extends Pazpar2Command {
   protected boolean hasSingleTargetFilter(SingleTargetFilter targetFilter) {\r
     return hasSingleTargetFilter() && targetFilter.equals(this.singleTargetFilter);\r
   }\r
-\r
-  \r
-  public void setLimit (String limit) {\r
-    // TODO\r
-  }\r
-      \r
-  public void addFilter(String filterExpression) {\r
-    if (hasParameterSet("filter")) {\r
-      setFilter(filterExpression);\r
-    } else {\r
-      //TODO\r
-      getParameter("filter");\r
-    }\r
-  }\r
-  \r
-  public void removeFilters () {\r
-    \r
-  }\r
-  \r
-  public void removeFilter(String filterExpression) {\r
-    \r
-  }\r
     \r
   public SearchCommand copy () {\r
     SearchCommand newCommand = new SearchCommand(stateMgr);\r
@@ -173,5 +199,4 @@ public class SearchCommand extends Pazpar2Command {
     return newCommand;\r
   }\r
 \r
-\r
 }\r
index 6522b08..12347c6 100644 (file)
@@ -77,6 +77,15 @@ public class ShowCommand extends Pazpar2Command {
   public int getStart() {\r
     return getParameter("start") != null ? Integer.parseInt(getParameter("start").value) : 0;\r
   }\r
+  \r
+  public void setNum (int num) {\r
+    setParameter(new CommandParameter("num","=",num));\r
+  }\r
+  \r
+  public int getNum () {\r
+    return getParameter("num") != null ? Integer.parseInt(getParameter("num").value) : 0;\r
+  }\r
+\r
 \r
   \r
   public ShowCommand copy () {\r