blob: 187a62c13cc9c552f511d6f5cb114c69832137a2 [file] [log] [blame]
/*
* Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// gonural - initial implementation
package org.eclipse.persistence.jpa.rs.exceptions;
import jakarta.xml.bind.annotation.XmlRootElement;
import jakarta.xml.bind.annotation.XmlType;
import org.eclipse.persistence.jpa.rs.ReservedWords;
/*
*
* Model class for marshaling error response
*
*/
@XmlRootElement(name = ReservedWords.ERROR_RESPONSE_LABEL)
@XmlType(propOrder = { "problemType", "title", "httpStatus", "detail", "problemInstance", "errorCode", "errorPath", "errorDetails", "requestId" })
/*
* {
* "$schema": "http://json-schema.org/draft-04/schema#",
* "id": "rest-schemas/exception#",
* "title": "Error Detail",
* "description": "This complex type is used to capture the error detail during REST calls",
* "type": "object",
* "properties": {
* "problemType": {
* "type": "string",
* "description": "An absolute URI that identifies the problem type. When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g., using HTML)."
* },
* "title": {
* "type": "string",
* "description": "A short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localisation."
* },
* "httpStatus": {
* "type": "integer",
* "description": "The HTTP status code set by the origin server for this occurrence of the problem."
* },
* "detail": {
* "type": "string",
* "description": "An human readable explanation specific to this occurrence of the problem."
* },
* "problemInstance": {
* "type": "string",
* "description": "An absolute URI that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced."
* },
* "errorCode": {
* "type": "string",
* "description": "application error code, which is different from HTTP error code"
* },
* "errorPath": {
* "type": "string",
* "description": "path to the problem, it could be at a resource level, or maybe at property level"
* },
* "errorDetails": {
* "$ref": "rest-schemas/exception#",
* "description": "contains details of the error message. This is basically a hierarchical tree structure."
* }
* },
* "required": ["problemType", "title"]
* }
*/
public class ErrorResponse {
private String problemType; // mandatory
private String title; // mandatory
private int httpStatus;
private String detail;
private String problemInstance;
private String errorCode;
private String errorPath;
private ErrorResponse errorDetails;
private String requestId;
/**
* Instantiates a new error response.
*/
public ErrorResponse() {
}
/**
* Instantiates a new error response.
*
* @param problemType the problem type
* @param title the title
* @param errorCode the error code
*/
public ErrorResponse(String problemType, String title, String errorCode) {
this.problemType = problemType;
this.title = title;
this.errorCode = errorCode;
}
/**
* Gets the problem type.
*
* @return the problem type
*/
public String getProblemType() {
return problemType;
}
/**
* Sets the problem type.
*
* @param problemType the new problem type
*/
public void setProblemType(String problemType) {
this.problemType = problemType;
}
/**
* Gets the title.
*
* @return the title
*/
public String getTitle() {
return title;
}
/**
* Sets the title.
*
* @param title the new title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* Gets the http status.
*
* @return the http status
*/
public int getHttpStatus() {
return httpStatus;
}
/**
* Sets the http status.
*
* @param httpStatus the new http status
*/
public void setHttpStatus(int httpStatus) {
this.httpStatus = httpStatus;
}
/**
* Gets the detail.
*
* @return the detail
*/
public String getDetail() {
return detail;
}
/**
* Sets the detail.
*
* @param detail the new detail
*/
public void setDetail(String detail) {
this.detail = detail;
}
/**
* Gets the problem instance.
*
* @return the problem instance
*/
public String getProblemInstance() {
return problemInstance;
}
/**
* Sets the problem instance.
*
* @param problemInstance the new problem instance
*/
public void setProblemInstance(String problemInstance) {
this.problemInstance = problemInstance;
}
/**
* Gets the error code.
*
* @return the error code
*/
public String getErrorCode() {
return errorCode;
}
/**
* Sets the error code.
*
* @param errorCode the new error code
*/
public void setErrorCode(String errorCode) {
this.errorCode = errorCode;
}
/**
* Gets the error path.
*
* @return the error path
*/
public String getErrorPath() {
return errorPath;
}
/**
* Sets the error path.
*
* @param errorPath the new error path
*/
public void setErrorPath(String errorPath) {
this.errorPath = errorPath;
}
/**
* Gets the error details.
*
* @return the error details
*/
public ErrorResponse getErrorDetails() {
return errorDetails;
}
/**
* Sets the error details.
*
* @param errorDetails the new error details
*/
public void setErrorDetails(ErrorResponse errorDetails) {
this.errorDetails = errorDetails;
}
/**
* Gets the request id.
*
* @return the request id
*/
public String getRequestId() {
return requestId;
}
/**
* Sets the request unique id.
*
* @param requestId the new request unique id
*/
public void setRequestId(String requestId) {
this.requestId = requestId;
}
}