public ActionResponse apply(HttpResponse response, boolean returnNullIfNotMapped) { if (Parser.isContentTypeText(response.getContentType())) { return ActionResponse.actionFailed(response.getStatusMessage(), response.getStatus()); } @SuppressWarnings("unchecked") Map<String, Object> map = response.readEntity(Map.class); ActionResponse ar = new ParseActionResponseFromJsonMap(response).apply(map); if (ar != null) return ar; if (ar == null && returnNullIfNotMapped) return null; return ActionResponse.actionFailed(String.format("Status: %d, Reason: %s", response.getStatus(), response.getStatusMessage()), response.getStatus()); } }