X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fpz2utils4jsf%2Fpazpar2%2FPz2Bean.java;h=65706a9fd7d445d8450698c5296819d217ce9f21;hb=7b71381e71db35eed511606e80c0d3e18cab4d2b;hp=d942a4a6540cb83e9205c6dd78b016307f4c7262;hpb=be532cf4928f497e5e718d78959dfff4039c01b9;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2Bean.java b/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2Bean.java index d942a4a..65706a9 100644 --- a/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2Bean.java +++ b/src/main/java/com/indexdata/pz2utils4jsf/pazpar2/Pz2Bean.java @@ -39,8 +39,8 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable { @Inject ConfigurationReader configurator; @Inject StateManager stateMgr; - @Inject Pazpar2Commands req; - @Inject Pazpar2Responses data; + @Inject Pazpar2Commands pzreq; + @Inject Pazpar2Responses pzresp; protected ResultsPager pager = null; @@ -82,21 +82,22 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable { configurationErrors.add(new ConfigurationError("Search Client","Configuration",e.getMessage(),new ErrorHelper(configReader))); } logger.info(configReader.document()); - data.reset(); + pzresp.reset(); } public void doSearch(String query) { - req.getSearch().setParameter(new CommandParameter("query","=",query)); + pzreq.getSearch().setParameter(new CommandParameter("query","=",query)); doSearch(); } public void doSearch() { stateMgr.hasPendingStateChange("search",false); - data.reset(); - req.getRecord().removeParameters(); - req.getShow().setParameter(new CommandParameter("start","=",0)); - logger.debug(Utils.objectId(this) + " is searching using "+req.getCommandReadOnly("search").getUrlEncodedParameterValue("query")); + pzresp.reset(); + // TODO: avoid state proliferation here: + pzreq.getRecord().removeParameters(); + pzreq.getShow().setParameter(new CommandParameter("start","=",0)); + logger.debug(Utils.objectId(this) + " is searching using "+pzreq.getCommandReadOnly("search").getUrlEncodedParameterValue("query")); doCommand("search"); } @@ -124,7 +125,7 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable { List threadList = new ArrayList(); StringTokenizer tokens = new StringTokenizer(commands,","); while (tokens.hasMoreElements()) { - threadList.add(new CommandThread(req.getCommandReadOnly(tokens.nextToken()),searchClient)); + threadList.add(new CommandThread(pzreq.getCommandReadOnly(tokens.nextToken()),searchClient)); } for (CommandThread thread : threadList) { thread.start(); @@ -141,17 +142,17 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable { String response = thread.getResponse(); logger.debug("Response was: " + response); Pazpar2ResponseData responseObject = Pazpar2ResponseParser.getParser().getDataObject(response); - data.put(commandName, responseObject); + pzresp.put(commandName, responseObject); } if (commands.equals("record")) { - logger.debug("Record: Active clients: "+data.getRecord().getActiveClients()); - return data.getRecord().getActiveClients(); + logger.debug("Record: Active clients: "+pzresp.getRecord().getActiveClients()); + return pzresp.getRecord().getActiveClients(); } else { - return data.getActiveClients(); + return pzresp.getActiveClients(); } } else { logger.debug("Skipped requests for " + commands + " as there's not yet a query."); - data.reset(); + pzresp.reset(); return "0"; } } else { @@ -163,18 +164,18 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable { public String toggleRecord (String recId) { if (hasRecord(recId)) { - req.getRecord().removeParameters(); - data.put("record", new RecordResponse()); + pzreq.getRecord().removeParameters(); + pzresp.put("record", new RecordResponse()); return ""; } else { - req.getRecord().setRecordId(recId); + pzreq.getRecord().setId(recId); return doCommand("record"); } } @Override public boolean hasRecord (String recId) { - return req.getCommandReadOnly("record").hasParameters() && data.getRecord().getRecId().equals(recId); + return pzreq.getCommandReadOnly("record").hasParameters() && pzresp.getRecord().getRecId().equals(recId); } public String getCurrentStateKey () { @@ -190,7 +191,7 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable { } public boolean hasCommandErrors () { - return data.hasApplicationError(); + return pzresp.hasApplicationError(); } /** @@ -205,20 +206,20 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable { } - protected boolean hasQuery() { - return req.getSearch().getParameter("query") != null && req.getSearch().getParameter("query").getValueWithExpressions().length()>0; + protected boolean hasQuery() { + return pzreq.getCommandReadOnly("search").hasParameterSet("query"); } public ResultsPager getPager () { if (pager == null) { - pager = new ResultsPager(data); + pager = new ResultsPager(pzresp); } return pager; } public ResultsPager setPager (int pageRange) { - pager = new ResultsPager(data,pageRange,req); + pager = new ResultsPager(pzresp,pageRange,pzreq); return pager; } @@ -234,17 +235,16 @@ public class Pz2Bean implements Pz2Interface, StateListener, Serializable { if (stateMgr.hasPendingStateChange("record") && ! commands.equals("record")) { logger.debug("Found pending record ID change. Doing record before updating " + commands); stateMgr.hasPendingStateChange("record",false); - if (req.getCommandReadOnly("record").hasParameters()) { + if (pzreq.getCommandReadOnly("record").hasParameters()) { update("record"); - } else { - req.getRecord().removeParameters(); - data.put("record", new RecordResponse()); + } else { + pzresp.put("record", new RecordResponse()); } } } protected String doCommand(String commandName) { - logger.debug(req.getCommandReadOnly(commandName).getEncodedQueryString() + ": Results for "+ req.getCommandReadOnly("search").getEncodedQueryString()); + logger.debug(pzreq.getCommandReadOnly(commandName).getEncodedQueryString() + ": Results for "+ pzreq.getCommandReadOnly("search").getEncodedQueryString()); return update(commandName); }