/*- * ============LICENSE_START======================================================= * org.openecomp.aai * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. * ============LICENSE_END========================================================= */ package org.openecomp.aai.logging; import javax.ws.rs.core.Response.Status; /** * * Contains the definition of all error message fields to be mapped from the Error * properties file * */ public class ErrorObject { private String disposition; private String category; private String severity; private Status httpResponseCode = Status.INTERNAL_SERVER_ERROR; // default private String restErrorCode = "3002"; private String errorCode; private String errorText; /** * Instantiates a new error object. */ public ErrorObject() { super(); } /** * Creates an error object with the default HTTP Error Code (Status.INTERNAL_SERVER_ERROR) * * @param disposition the disposition * @param category the category * @param severity the severity * @param httpResponseCode the http response code * @param restErrorCode the rest error code * @param errorCode the error code * @param errorText the error text */ public ErrorObject(String disposition, String category, String severity, Integer httpResponseCode, String restErrorCode, String errorCode, String errorText) { super(); this.setDisposition(disposition); this.setCategory(category); this.severity = severity; this.setHTTPResponseCode(httpResponseCode); this.setRESTErrorCode(restErrorCode); this.setErrorCode(errorCode); this.setErrorText(errorText); } // OLD STARTS HERE /** * Instantiates a new error object. * * @param severity the severity * @param errorCode the error code * @param errorText the error text * @param disposition the disposition * @param category the category */ public ErrorObject(String severity, String errorCode, String errorText, String disposition, String category) { this(severity, Status.INTERNAL_SERVER_ERROR, errorCode, errorText, disposition, category); } /** * Instantiates a new error object. * * @param severity the severity * @param httpResponseCode the http response code * @param errorCode the error code * @param errorText the error text * @param disposition the disposition * @param category the category */ public ErrorObject(String severity, Integer httpResponseCode, String errorCode, String errorText, String disposition, String category) { super(); this.severity = severity; this.setHTTPResponseCode(httpResponseCode); this.setErrorCode(errorCode); this.setErrorText(errorText); this.setDisposition(disposition); this.setCategory(category); } /** * Instantiates a new error object. * * @param severity the severity * @param httpResponseCode the http response code * @param errorCode the error code * @param errorText the error text * @param disposition the disposition * @param category the category */ public ErrorObject(String severity, Status httpResponseCode, String errorCode, String errorText, String disposition, String category) { super(); this.severity = severity; this.setHTTPResponseCode(httpResponseCode); this.setErrorCode(errorCode); this.setErrorText(errorText); this.setDisposition(disposition); this.setCategory(category); } /** * Gets the disposition. * * @return the disposition */ public String getDisposition() { return disposition; } /** * Sets the disposition. * * @param disposition the new disposition */ public void setDisposition(String disposition) { this.disposition = disposition; } /** * Gets the category. * * @return the category */ public String getCategory() { return category; } /** * Sets the category. * * @param category the new category */ public void setCategory(String category) { this.category = category; } /** * Gets the severity. * * @return the severity */ public String getSeverity() { return severity; } /** * Sets the severity. * * @param severity the new severity */ public void setSeverity(String severity) { this.severity = severity; } /** * 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 HTTP response code. * * @return the HTTP response code */ public Status getHTTPResponseCode() { return httpResponseCode; } /** * Sets the HTTP response code. * * @param httpResponseCode the new HTTP response code */ public void setHTTPResponseCode(Integer httpResponseCode) { this.httpResponseCode = Status.fromStatusCode(httpResponseCode); if (this.httpResponseCode == null) { throw new IllegalArgumentException("setHTTPResponseCode was passed an invalid Integer value, fix error.properties or your code "+httpResponseCode); } } /** * Sets the HTTP response code. * * @param httpResponseCode the new HTTP response code */ public void setHTTPResponseCode(String httpResponseCode) { this.httpResponseCode = Status.fromStatusCode(Integer.valueOf(httpResponseCode)); if (this.httpResponseCode == null) { throw new IllegalArgumentException("setHTTPResponseCode was passed an invalid String value, fix error.properties or your code "+httpResponseCode); } } /** * Sets the REST error code. * * @param restErrorCode the new REST error code */ public void setRESTErrorCode(String restErrorCode) { this.restErrorCode = restErrorCode; } /** * Gets the REST error code. * * @return the REST error code */ public String getRESTErrorCode() { return this.restErrorCode; } /** * Sets the HTTP response code. * * @param httpResponseCode the new HTTP response code */ public void setHTTPResponseCode(Status httpResponseCode) { this.httpResponseCode = httpResponseCode; if (this.httpResponseCode == null) { throw new IllegalArgumentException("setHTTPResponseCode was passed an invalid String value, fix error.properties or your code "+httpResponseCode); } } /** * Gets the error text. * * @return the error text */ public String getErrorText() { return errorText; } /** * Sets the error text. * * @param errorText the new error text */ public void setErrorText(String errorText) { this.errorText = errorText; } /** * Gets the error code string. This is also the string * configured in Nagios to alert on * * @return the error code string */ // Get the X.Y.Z representation of the error code public String getErrorCodeString() { String prefix = null; switch (disposition) { default: prefix = ""; break; case "5": prefix = "ERR."; break; } return prefix + disposition + "." + category + "." + errorCode; } /** * {@inheritDoc} */ @Override public String toString() { return "ErrorObject [errorCode="+ errorCode + ", errorText=" + errorText + ", restErrorCode=" + restErrorCode + ", httpResponseCode="+ httpResponseCode + ", severity=" + severity + ", disposition=" + disposition + ", category=" + category +"]"; } }