package com.netifera.platform.dispatcher;
import com.netifera.platform.api.dispatcher.ProbeMessage;
public class StatusMessage extends ProbeMessage {
/**
*
*/
private static final long serialVersionUID = -4780549436523334043L;
private boolean error;
private boolean unhandled;
private String errorMessage;
public static StatusMessage createOk(int sequenceNumber) {
return new StatusMessage(sequenceNumber, false, null);
}
public static StatusMessage createError(int sequenceNumber, String message) {
return new StatusMessage(sequenceNumber, true, message);
}
public static StatusMessage createUnhandledMessageError(int sequenceNumber) {
StatusMessage msg = new StatusMessage(sequenceNumber, true, null);
msg.unhandled = true;
return msg;
}
private StatusMessage(int sequenceNumber, boolean error, String message) {
super("status");
this.error = error;
errorMessage = message;
markAsResponse();
setSequenceNumber(sequenceNumber);
}
public boolean isOk() {
return error == false;
}
public boolean isError() {
return error;
}
public boolean isUnhandledMessageError() {
return unhandled;
}
public String getErrorMessage() {
if(errorMessage == null) {
return "";
}
return errorMessage;
}
public String toString() {
return super.toString() + ' ' +
(isOk() ? "OK" : "Error: " + getErrorMessage());
}
}