X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fcommands%2FSearchCommand.java;h=f2eb3bef2dd9480332ac625f646fbd29c10794cf;hb=45780ca51a3f1a967acda7c4d7d71aebe7081a67;hp=cae510e84b0ee835360ad6efb50a441e2546d49d;hpb=78cce328039810027616b0dfe4fb3362f5b573af;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/SearchCommand.java b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/SearchCommand.java index cae510e..f2eb3be 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/SearchCommand.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/SearchCommand.java @@ -1,22 +1,35 @@ package com.indexdata.mkjsf.pazpar2.commands; import javax.enterprise.context.SessionScoped; +import javax.inject.Named; import org.apache.log4j.Logger; +import com.indexdata.mkjsf.pazpar2.Pz2Service; import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand; -import com.indexdata.mkjsf.pazpar2.state.StateManager; +import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject; -@SessionScoped +@SessionScoped @Named public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand { private static final long serialVersionUID = -1888520867838597236L; private static Logger logger = Logger.getLogger(SearchCommand.class); private SingleTargetFilter singleTargetFilter = null; + + public SearchCommand() { + super("search"); + } - public SearchCommand(StateManager stateMgr) { - super("search",stateMgr); + public ResponseDataObject run() { + logger.info("Running " + getCommandName()); + Pz2Service.get().getStateMgr().hasPendingStateChange("search",false); + Pz2Service.get().getPzresp().resetSearchAndBeyond(); + Pz2Service.get().getPzreq().getRecord().removeParametersInState(); + Pz2Service.get().getPzreq().getShow().setParameterInState(new CommandParameter("start","=",0)); + Pz2Service.get().getSearchClient().setSearchCommand(this); + return super.run(); } + public void setQuery(String query) { setParameter(new CommandParameter("query","=",query)); @@ -36,7 +49,7 @@ public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand public void addFilter(String filterExpression) { // TODO: implement - if (hasParameterSet("filter")) { + if (hasParameterValue("filter")) { setFilter(filterExpression); } else { getParameter("filter"); @@ -81,14 +94,31 @@ public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand return getParameterValue("maxrecs"); } - public void setSort () { - setParameter(new CommandParameter("sort","=","sort")); + public void setSort (String sort) { + setParameter(new CommandParameter("sort","=",sort)); } public String getSort () { return getParameterValue("sort"); } + public void setRank (String rank) { + setParameter(new CommandParameter("rank","=",rank)); + } + + public String getRank () { + return getParameterValue("rank"); + } + + public void setMergekey (String mergekey) { + setParameter(new CommandParameter("mergekey","=",mergekey)); + } + + public String getMergekey () { + return getParameterValue("mergekey"); + } + + /** * Sets a facet, in CQL, to restrict the current results, * then executes the search @@ -195,7 +225,7 @@ public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand } public SearchCommand copy () { - SearchCommand newCommand = new SearchCommand(stateMgr); + SearchCommand newCommand = new SearchCommand(); for (String parameterName : parameters.keySet()) { newCommand.setParameterInState(parameters.get(parameterName).copy()); } @@ -208,4 +238,9 @@ public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand return this; } + @Override + public boolean spOnly() { + return false; + } + }