X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fdata%2FResponses.java;h=1397023009a5369d4ac4b33a57af09bc1ba66085;hb=11ff48b9d37193a89a4b74da75db8c58415c46a6;hp=1df2363586cc0646801d78ed6bbffcc384ab16ee;hpb=056883036f0be0d1bf0a06d0f5842d382239adf9;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/Responses.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/Responses.java index 1df2363..1397023 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/data/Responses.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/data/Responses.java @@ -16,17 +16,18 @@ import org.apache.log4j.Logger; import com.indexdata.mkjsf.errors.ErrorHelper; import com.indexdata.mkjsf.errors.ErrorInterface; -import com.indexdata.mkjsf.pazpar2.data.sp.AuthResponse; -import com.indexdata.mkjsf.pazpar2.data.sp.CategoriesResponse; +import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject; +import com.indexdata.mkjsf.pazpar2.data.sp.SpResponses; import com.indexdata.mkjsf.utils.Utils; -@Named("pzresp") @SessionScoped +@SessionScoped @Named public class Responses implements Serializable { private static final long serialVersionUID = -7543231258346154642L; protected Map dataObjects = new ConcurrentHashMap(); private static Logger logger = Logger.getLogger(Responses.class); private ErrorHelper errorHelper = null; + private SpResponses sp = null; public Responses() { } @@ -44,10 +45,15 @@ public class Responses implements Serializable { logger.info("Error detected in search"); return true; } - for (String name : dataObjects.keySet()) { + for (String name : dataObjects.keySet()) { if (dataObjects.get(name).hasApplicationError()) { - logger.info("Error detected in " + name); - return true; + if (dataObjects.get(name) instanceof SpResponseDataObject && + ((SpResponseDataObject)dataObjects.get(name)).unsupportedCommand()) { + logger.debug("Command [" + name + "] not supported by this service"); + } else { + logger.info("Error detected in " + name); + return true; + } } } return false; @@ -75,25 +81,23 @@ public class Responses implements Serializable { return error; } - public void resetSearchResponses() { + public void resetSearchAndBeyond() { logger.debug("Resetting show,stat,termlist,bytarget,record,search response objects."); dataObjects.put("show", new ShowResponse()); dataObjects.put("stat", new StatResponse()); dataObjects.put("termlist", new TermListsResponse()); dataObjects.put("bytarget", new ByTarget()); dataObjects.put("record", new RecordResponse()); - dataObjects.put("search", new SearchResponse()); + dataObjects.put("search", new SearchResponse()); + getSp().resetSearchAndBeyond(false); } - public void resetAllSessionData () { - logger.debug("Resetting all response objects"); - dataObjects = new ConcurrentHashMap(); - resetSearchResponses(); - dataObjects.put("init", new InitResponse()); - dataObjects.put("auth", new AuthResponse()); - dataObjects.put("categories", new CategoriesResponse()); + public void resetInitAndBeyond () { + dataObjects.put("init", new InitResponse()); + resetSearchAndBeyond(); + getSp().resetInitAndBeyond(false); } - + public InitResponse getInit () { return ((InitResponse) dataObjects.get("init")); } @@ -130,17 +134,6 @@ public class Responses implements Serializable { return ((ByTarget) dataObjects.get("bytarget")); } - // Service Proxy extras - public AuthResponse getAuth () { - return ((AuthResponse) dataObjects.get("auth")); - } - - public CategoriesResponse getCategories() { - return ((CategoriesResponse) dataObjects.get("categories")); - } - // Service Proxy extras - - public ResponseDataObject getResponseObject (String name) { return dataObjects.get(name); } @@ -182,4 +175,8 @@ public class Responses implements Serializable { facesContext.responseComplete(); } + public SpResponses getSp() { + return (sp == null ? new SpResponses(this) : sp); + } + } \ No newline at end of file