package it.softecspa.fileproxy.services.common;
@SuppressWarnings("serial")
public class CheckerException extends Throwable implements TraceableWithIdException {
private String id;
private ResponseResult result;
private boolean traceLog;
private boolean traceErrorCall;
private String supplementaryMessage;
public CheckerException(ResponseOutcome outcome) {
this(outcome.getReturnCode(), outcome.getMessage(), null, ResponseResult.ERROR, outcome.isTraceLog(), outcome.isTraceErrorCall());
}
public CheckerException(ResponseOutcome outcome, ResponseResult result) {
this(outcome.getReturnCode(), outcome.getMessage(), null, result, outcome.isTraceLog(), outcome.isTraceErrorCall());
}
public CheckerException(ResponseOutcome outcome, String supplementary) {
this(outcome.getReturnCode(), outcome.getMessage(), supplementary, null, outcome.isTraceLog(), outcome.isTraceErrorCall());
}
public CheckerException(ResponseOutcome outcome, String supplementary , ResponseResult result) {
this(outcome.getReturnCode(), outcome.getMessage(), supplementary, result, outcome.isTraceLog(), outcome.isTraceErrorCall());
}
private CheckerException(String id, String message, String supplementary, ResponseResult result, boolean traceLog, boolean traceErrorCall) {
super(message);
this.id = id;
this.result = result;
this.supplementaryMessage = supplementary;
this.traceLog = traceLog;
this.traceErrorCall = traceErrorCall;
}
@Override
public String getId() {
return id;
}
public ResponseResult getResult() {
return result;
}
@Override
/**
* Returns the detail and supplementary message string of this throwable.
*
* @return the detail message string of this CheckerException instance.
*/
public String getMessage() {
if (supplementaryMessage==null) {
return super.getMessage();
} else {
return super.getMessage() +" ["+supplementaryMessage+"]";
}
}
/**
* Returns the standard detail message string of this throwable.
*
* @return the detail message string of this CheckerException instance.
*/
public String getStandardMessage() {
return super.getMessage();
}
/**
* Returns the supplementary message string of this throwable.
*
* @return the supplementary message string of this CheckerException instance.
* (which may be null).
*/
public String getSupplementaryMessage() {
return supplementaryMessage;
}
@Override
public String toString() {
String s = getClass().getName();
String message = getMessage();
return (message != null) ? (s + ": " + message) : s;
}
@Override
public boolean isTraceLog() {
return traceLog;
}
@Override
public boolean isTraceErrorCall() {
return traceErrorCall;
}
}