package com.indexdata.mkjsf.pazpar2.commands;\r
\r
import javax.enterprise.context.SessionScoped;\r
+import javax.inject.Named;\r
\r
import org.apache.log4j.Logger;\r
\r
-import com.indexdata.mkjsf.pazpar2.state.StateManager;\r
+import com.indexdata.mkjsf.pazpar2.Pz2Service;\r
+import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand;\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
\r
-@SessionScoped\r
-public class SearchCommand extends Pazpar2Command {\r
+@SessionScoped @Named\r
+public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand {\r
\r
private static final long serialVersionUID = -1888520867838597236L;\r
private static Logger logger = Logger.getLogger(SearchCommand.class);\r
private SingleTargetFilter singleTargetFilter = null;\r
+ \r
+ public SearchCommand() {\r
+ super("search");\r
+ }\r
\r
- public SearchCommand(StateManager stateMgr) {\r
- super("search",stateMgr);\r
+ public ResponseDataObject run() {\r
+ logger.info("Running " + getCommandName());\r
+ Pz2Service.get().getStateMgr().hasPendingStateChange("search",false);\r
+ Pz2Service.get().getPzresp().resetSearchAndBeyond();\r
+ Pz2Service.get().getPzreq().getRecord().removeParametersInState(); \r
+ Pz2Service.get().getPzreq().getShow().setParameterInState(new CommandParameter("start","=",0)); \r
+ Pz2Service.get().getSearchClient().setSearchCommand(this);\r
+ return super.run();\r
}\r
+\r
\r
public void setQuery(String query) { \r
setParameter(new CommandParameter("query","=",query));\r
\r
public void addFilter(String filterExpression) {\r
// TODO: implement\r
- if (hasParameterSet("filter")) {\r
+ if (hasParameterValue("filter")) {\r
setFilter(filterExpression);\r
} else {\r
getParameter("filter");\r
return getParameterValue("maxrecs");\r
}\r
\r
- public void setSort () {\r
- setParameter(new CommandParameter("sort","=","sort"));\r
+ public void setSort (String sort) {\r
+ setParameter(new CommandParameter("sort","=",sort));\r
}\r
\r
public String getSort () {\r
return getParameterValue("sort");\r
}\r
\r
+ public void setRank (String rank) {\r
+ setParameter(new CommandParameter("rank","=",rank));\r
+ }\r
+ \r
+ public String getRank () {\r
+ return getParameterValue("rank");\r
+ }\r
+ \r
+ public void setMergekey (String mergekey) {\r
+ setParameter(new CommandParameter("mergekey","=",mergekey));\r
+ }\r
+ \r
+ public String getMergekey () {\r
+ return getParameterValue("mergekey");\r
+ }\r
+ \r
+ \r
/**\r
* Sets a facet, in CQL, to restrict the current results,\r
* then executes the search \r
}\r
\r
public SearchCommand copy () {\r
- SearchCommand newCommand = new SearchCommand(stateMgr);\r
+ SearchCommand newCommand = new SearchCommand();\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