X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fcommands%2FSearchCommand.java;h=c314ec6746dc288fb91cf0ab8da792cf4a3b2bb4;hb=152e7286bff7812d35fb5a9a4f1a92fd7a406a9e;hp=749742e74610d64433298564d57ee00bb25d97e7;hpb=ccb28ae8d5d46d29c40bd8b1637522c212b80636;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 749742e..c314ec6 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/commands/SearchCommand.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/commands/SearchCommand.java @@ -4,10 +4,11 @@ import javax.enterprise.context.SessionScoped; import org.apache.log4j.Logger; +import com.indexdata.mkjsf.pazpar2.commands.sp.ServiceProxyCommand; import com.indexdata.mkjsf.pazpar2.state.StateManager; @SessionScoped -public class SearchCommand extends Pazpar2Command { +public class SearchCommand extends Pazpar2Command implements ServiceProxyCommand { private static final long serialVersionUID = -1888520867838597236L; private static Logger logger = Logger.getLogger(SearchCommand.class); @@ -35,7 +36,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 +81,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 @@ -150,13 +168,14 @@ public class SearchCommand extends Pazpar2Command { if (hasSingleTargetFilter(new SingleTargetFilter(targetId,targetName))) { logger.debug("Already using target filter " + this.singleTargetFilter.getFilterExpression()); } else { + logger.debug("Setting new single target filter for [" + targetName + "]"); this.singleTargetFilter = new SingleTargetFilter(targetId,targetName); setParameter(new CommandParameter("filter","=",this.singleTargetFilter.getFilterExpression())); } } public SingleTargetFilter getSingleTargetFilter () { - logger.debug("request to get the current single target filter"); + logger.debug("request to get the current single target filter " + singleTargetFilter); return singleTargetFilter; } @@ -164,10 +183,11 @@ public class SearchCommand extends Pazpar2Command { * Removes the current target filter from the search * */ - public void removeSingleTargetFilter () { + public String removeSingleTargetFilter () { logger.debug("Removing target filter " + singleTargetFilter.getFilterExpression()); this.singleTargetFilter = null; - removeParameter("filter"); + removeParameter("filter"); + return null; } /** @@ -178,7 +198,7 @@ public class SearchCommand extends Pazpar2Command { logger.debug("Checking if a single target filter is set: " + (singleTargetFilter != null)); return singleTargetFilter != null; } - + /** * Resolves if the current search command has a target filter - to * be used by the UI for conditional rendering of target filter info. @@ -187,6 +207,7 @@ public class SearchCommand extends Pazpar2Command { * filter */ protected boolean hasSingleTargetFilter(SingleTargetFilter targetFilter) { + logger.debug("Checking if target filter for [" + targetFilter.getTargetName() + "] is set."); return hasSingleTargetFilter() && targetFilter.equals(this.singleTargetFilter); } @@ -199,4 +220,14 @@ public class SearchCommand extends Pazpar2Command { return newCommand; } + @Override + public ServiceProxyCommand getSp() { + return this; + } + + @Override + public boolean spOnly() { + return false; + } + }