X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fcom%2Findexdata%2Fmkjsf%2Fpazpar2%2Fdata%2FCommandError.java;h=54aa8f6d9eeb6543978dd0094af6738a8605e295;hb=3cc9707fdd556a222b5d8e6bba61c84a320eb357;hp=c8f9e2d902f24f1bbbba238ed72f9cd6c8d25234;hpb=249aba186bb25b673bc701f4614cfe1981cd6767;p=mkjsf-moved-to-github.git diff --git a/src/main/java/com/indexdata/mkjsf/pazpar2/data/CommandError.java b/src/main/java/com/indexdata/mkjsf/pazpar2/data/CommandError.java index c8f9e2d..54aa8f6 100644 --- a/src/main/java/com/indexdata/mkjsf/pazpar2/data/CommandError.java +++ b/src/main/java/com/indexdata/mkjsf/pazpar2/data/CommandError.java @@ -19,13 +19,13 @@ import com.indexdata.utils.XmlUtils; * in a new 'applicationerror' element which in turn will be embedded in a * command XML (i.e. a 'search' or a 'show' response XML) * - * The command response XML is subsequently parsed by Pazpar2ResponseParser, + * The command response XML is subsequently parsed by ResponseParser, * which will then create the CommandError object. * * @author Niels Erik * */ -public class CommandError extends Pazpar2ResponseData implements ErrorInterface { +public class CommandError extends ResponseDataObject implements ErrorInterface { private static final long serialVersionUID = 8878776025779714122L; private static Pattern xmlDeclaration = Pattern.compile("<\\?xml.*\\?>"); @@ -41,8 +41,8 @@ public class CommandError extends Pazpar2ResponseData implements ErrorInterface } public String getMessage() { - if (hasPazpar2Error()) { - return getPazpar2Error().getMsg(); + if (isServiceError()) { + return getServiceError().getMsg(); } else { return getOneElementValue("errormessage"); } @@ -64,19 +64,22 @@ public class CommandError extends Pazpar2ResponseData implements ErrorInterface /** * Creates an XML string error message, embedded in an XML string document named by the command - * This is the XML that Pazpar2ResponseParser will turn into a CommandError object. + * This is the XML that ResponseParser will turn into a CommandError object. * @param commandName - * @param exceptionName + * @param exception * @param errorMessage * @return */ - public static String createErrorXml (String commandName, String exceptionName, String errorMessage) { + public static String createErrorXml (String commandName, String statusCode, String exception, String errorMessage, String response) { StringBuilder errorXml = new StringBuilder(""); errorXml.append("<" + commandName + ">"+nl); errorXml.append(" "+nl); errorXml.append(" " + commandName + ""+nl); - errorXml.append(" " + (exceptionName != null ? XmlUtils.escape(exceptionName) : "") + ""+nl); - errorXml.append(" " + (errorMessage != null ? XmlUtils.escape(errorMessage) : "") + ""+nl); + errorXml.append(" FAIL"+nl); + errorXml.append(" " + statusCode + ""+nl); + errorXml.append(" " + (exception != null ? XmlUtils.escape(exception) : "") + ""+nl); + errorXml.append(" " + (errorMessage != null ? XmlUtils.escape(errorMessage) : "") + ""+nl); + errorXml.append(" " + response + "" + nl); errorXml.append(" "+nl); errorXml.append(""+nl); return errorXml.toString(); @@ -85,21 +88,22 @@ public class CommandError extends Pazpar2ResponseData implements ErrorInterface /** * Embeds a Pazpar2 (or Pazpar2 client) error response document as a child element of * a command response document (like 'search' or 'show'). - * This is the XML that Pazpar2ResponseParser will turn into a CommandError object. + * This is the XML that ResponseParser will turn into a CommandError object. * * * @param commandName The name of the command during which's execution the error was encountered - * @param exceptionName The (possibly loosely defined) name of the exception that was thrown + * @param exception The (possibly loosely defined) name of the exception that was thrown * @param pazpar2ErrorXml The error document as created by Pazpar2, or the Service Proxy or * by the Pazpar2 client itself. * @return */ - public static String insertPazpar2ErrorXml (String commandName, String exceptionName, String pazpar2ErrorXml) { + public static String insertErrorXml (String commandName, String statusCode, String exception, String pazpar2ErrorXml) { StringBuilder errorXml = new StringBuilder(""); errorXml.append("<" + commandName + ">"+nl); errorXml.append(" "+nl); errorXml.append(" " + commandName + ""+nl); - errorXml.append(" " + XmlUtils.escape(exceptionName) + ""+nl); + errorXml.append(" " + statusCode + ""+nl); + errorXml.append(" " + XmlUtils.escape(exception) + ""+nl); errorXml.append(xmlDeclaration.matcher(pazpar2ErrorXml).replaceAll("")+nl); errorXml.append(" "+nl); errorXml.append(""+nl); @@ -125,13 +129,21 @@ public class CommandError extends Pazpar2ResponseData implements ErrorInterface return applicationErrorCode; } - public boolean hasPazpar2Error () { - return ( getOneElement("error") != null); + public boolean isServiceError () { + ServiceError pz2err = (ServiceError) getOneElement("error"); + return (pz2err != null); } - public Pazpar2Error getPazpar2Error() { - return (Pazpar2Error) getOneElement("error"); + public ServiceError getServiceError() { + return (ServiceError) getOneElement("error"); + } + + public boolean isServiceProxyError () { + return (isServiceError() && getServiceError().isServiceProxyError()); } + public boolean isPazpar2Error () { + return (isServiceError() && getServiceError().isPazpar2Error()); + } }