More work on commands, statemgmt, EL references
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / commands / SearchCommand.java
diff --git a/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/commands/SearchCommand.java b/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/commands/SearchCommand.java
new file mode 100644 (file)
index 0000000..9486e86
--- /dev/null
@@ -0,0 +1,72 @@
+package com.indexdata.pz2utils4jsf.pazpar2.commands;\r
+\r
+import javax.enterprise.context.SessionScoped;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import com.indexdata.pz2utils4jsf.pazpar2.state.StateManager;\r
+\r
+@SessionScoped\r
+public class SearchCommand extends Pazpar2Command {\r
+  \r
+  private static final long serialVersionUID = -1888520867838597236L;\r
+  private static Logger logger = Logger.getLogger(SearchCommand.class);\r
+  \r
+  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
+  public void setQuery(String query) {\r
+    logger.info("writing query: " + query);\r
+    setParameter(new CommandParameter("query","=",query));\r
+  }\r
+  \r
+  public String getQuery () {\r
+    logger.info("retrieving query");\r
+    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
+  \r
+  public void setLimit (String limit) {\r
+    \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
+    for (String parameterName : parameters.keySet()) {\r
+      newCommand.setParameterSilently(parameters.get(parameterName).copy());      \r
+    }    \r
+    return newCommand;\r
+  }\r
+\r
+\r
+}\r