package bo.gotthardt.exception;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
/**
* @author Bo Gotthardt
*/
public class JsonMessageException extends WebApplicationException {
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
public JsonMessageException(int status, String message, Object... args) {
super(createResponse(status, message, args));
}
private static Response createResponse(int status, String message, Object... args) {
ObjectNode output = OBJECT_MAPPER.createObjectNode();
output.put("status", status);
output.put("message", String.format(message, args));
return Response.status(status)
.entity(output)
.type(MediaType.APPLICATION_JSON)
.build();
}
}