import com.indexdata.pz2utils4jsf.pazpar2.data.Pazpar2ResponseData;\r
import com.indexdata.pz2utils4jsf.pazpar2.data.Pazpar2ResponseParser;\r
import com.indexdata.pz2utils4jsf.pazpar2.data.RecordResponse;\r
+import com.indexdata.pz2utils4jsf.pazpar2.data.SearchResponse;\r
import com.indexdata.pz2utils4jsf.pazpar2.data.ShowResponse;\r
import com.indexdata.pz2utils4jsf.pazpar2.data.StatResponse;\r
import com.indexdata.pz2utils4jsf.pazpar2.data.TermListsResponse;\r
logger.debug("Updating show,stat,termlist,bytarget from pazpar2");\r
return update("show,stat,termlist,bytarget");\r
}\r
- \r
+ \r
/**\r
* Refreshes the data objects listed in 'commands' from pazpar2\r
* \r
}\r
}\r
for (CommandThread thread : threadList) {\r
- if (!thread.getCommand().getName().equals("search")) {\r
- dataObjects.put(thread.getCommand().getName(), new Pazpar2ResponseParser().getObject(thread.getResponse()));\r
- }\r
+ dataObjects.put(thread.getCommand().getName(), new Pazpar2ResponseParser().getObject(thread.getResponse())); \r
}\r
return getActiveClients();\r
} else {\r
logger.debug("************** request to set state key to: [" + key + "]"); \r
queryStates.setCurrentStateKey(key);\r
}\r
+ \r
+ public boolean hasErrors () {\r
+ if (dataObjects.get("search").isError()) {\r
+ logger.info("Error detected in search");\r
+ return true;\r
+ }\r
+ for (String name : dataObjects.keySet()) {\r
+ if (dataObjects.get(name).isError()) {\r
+ logger.info("Error detected in " + name);\r
+ return true;\r
+ }\r
+ } \r
+ return false;\r
+ }\r
+ \r
+ public String getErrorMessages() {\r
+ StringBuilder msgs = new StringBuilder("");\r
+ for (String name : dataObjects.keySet()) { \r
+ if (dataObjects.get(name).isError()) { \r
+ msgs.append(name + ": " + dataObjects.get(name).getErrorMessage());\r
+ } \r
+ }\r
+ return msgs.toString();\r
+ }\r
+ \r
+ public String getFirstErrorMessage() {\r
+ if (dataObjects.get("search").isError()) {\r
+ return "Error doing search: " + dataObjects.get("search").getErrorMessage();\r
+ }\r
+ for (String name : dataObjects.keySet()) { \r
+ if (dataObjects.get(name).isError()) { \r
+ return name + ": " + dataObjects.get(name).getErrorMessage(); \r
+ } \r
+ }\r
+ return "";\r
+ \r
+ }\r
+\r
\r
private boolean hasTargetFilter(TargetFilter targetFilter) {\r
return hasTargetFilter() && targetFilter.equals(this.targetFilter);\r
} \r
}\r
\r
- private String getActiveClients() {\r
- logger.debug("Active clients: "+getShow().getActiveClients());\r
+ private String getActiveClients() { \r
if (getShow()!=null) {\r
+ logger.debug("Active clients: "+getShow().getActiveClients());\r
return getShow().getActiveClients();\r
} else {\r
return "";\r
}\r
\r
private void resetDataObjects() {\r
- logger.debug("Resetting show,stat,termlist,bytarget response objects.");\r
+ logger.debug("Resetting show,stat,termlist,bytarget,search response objects.");\r
dataObjects = new ConcurrentHashMap<String,Pazpar2ResponseData>();\r
dataObjects.put("show", new ShowResponse());\r
dataObjects.put("stat", new StatResponse());\r
dataObjects.put("termlist", new TermListsResponse());\r
dataObjects.put("bytarget", new ByTarget());\r
dataObjects.put("record", new RecordResponse());\r
+ dataObjects.put("search", new SearchResponse());\r
}\r
+ \r
\r
}\r