X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fcommands%2FSearchCommand.java;h=f2eb3bef2dd9480332ac625f646fbd29c10794cf;hb=9cd922c29f423b69da6f52eabf0c7fdb0b0b6ca5;hp=5e4e07be49b02ee7aca871769e80b3d01c4236dc;hpb=acc76cb20c186e9754c285eaf2a1aac0c8d8c8ed;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 5e4e07b..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,21 +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.state.StateManager; +import com.indexdata.mkjsf.pazpar2.Pz2Service; +import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand; +import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject; -@SessionScoped -public class SearchCommand extends Pazpar2Command { +@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)); @@ -35,7 +49,7 @@ public class SearchCommand extends Pazpar2Command { public void addFilter(String filterExpression) { // TODO: implement - if (hasParameterSet("filter")) { + if (hasParameterValue("filter")) { setFilter(filterExpression); } else { getParameter("filter"); @@ -80,14 +94,31 @@ public class SearchCommand extends Pazpar2Command { 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 @@ -194,7 +225,7 @@ public class SearchCommand extends Pazpar2Command { } public SearchCommand copy () { - SearchCommand newCommand = new SearchCommand(stateMgr); + SearchCommand newCommand = new SearchCommand(); for (String parameterName : parameters.keySet()) { newCommand.setParameterInState(parameters.get(parameterName).copy()); } @@ -202,4 +233,14 @@ public class SearchCommand extends Pazpar2Command { return newCommand; } + @Override + public ServiceProxyCommand getSp() { + return this; + } + + @Override + public boolean spOnly() { + return false; + } + }