More work on commands, statemgmt, EL references
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / pz2utils4jsf / pazpar2 / commands / SearchCommand.java
1 package com.indexdata.pz2utils4jsf.pazpar2.commands;\r
2 \r
3 import javax.enterprise.context.SessionScoped;\r
4 \r
5 import org.apache.log4j.Logger;\r
6 \r
7 import com.indexdata.pz2utils4jsf.pazpar2.state.StateManager;\r
8 \r
9 @SessionScoped\r
10 public class SearchCommand extends Pazpar2Command {\r
11   \r
12   private static final long serialVersionUID = -1888520867838597236L;\r
13   private static Logger logger = Logger.getLogger(SearchCommand.class);\r
14   \r
15   public SearchCommand(StateManager stateMgr) {\r
16     super("search",stateMgr);\r
17   }\r
18   \r
19   public void setSession (String sessionId) {\r
20     setParameter(new CommandParameter("session","=",sessionId));\r
21   }\r
22   \r
23   public void setQuery(String query) {\r
24     logger.info("writing query: " + query);\r
25     setParameter(new CommandParameter("query","=",query));\r
26   }\r
27   \r
28   public String getQuery () {\r
29     logger.info("retrieving query");\r
30     return getParameter("query") == null ? null  : getParameter("query").getValueWithExpressions();\r
31   }\r
32   \r
33   public void setFilter(String filterExpression) {\r
34     setParameter(new CommandParameter("filter","=",filterExpression));\r
35   }\r
36   \r
37   public String getFilter() {\r
38     return getParameter("filter") == null ? null : getParameter("filter").getValueWithExpressions();\r
39   }\r
40 \r
41   \r
42   public void setLimit (String limit) {\r
43     \r
44   }\r
45       \r
46   public void addFilter(String filterExpression) {\r
47     if (hasParameterSet("filter")) {\r
48       setFilter(filterExpression);\r
49     } else {\r
50       //TODO\r
51       getParameter("filter");\r
52     }\r
53   }\r
54   \r
55   public void removeFilters () {\r
56     \r
57   }\r
58   \r
59   public void removeFilter(String filterExpression) {\r
60     \r
61   }\r
62   \r
63   public SearchCommand copy () {\r
64     SearchCommand newCommand = new SearchCommand(stateMgr);\r
65     for (String parameterName : parameters.keySet()) {\r
66       newCommand.setParameterSilently(parameters.get(parameterName).copy());      \r
67     }    \r
68     return newCommand;\r
69   }\r
70 \r
71 \r
72 }\r