035b9efb98272eee0015b42d4173f7b9d4be006c
[portal/ric-dashboard.git] / webapp-backend / src / main / java / org / oransc / ric / portal / dashboard / model / ErrorTransport.java
1 /*-
2  * ========================LICENSE_START=================================
3  * O-RAN-SC
4  * %%
5  * Copyright (C) 2019 AT&T Intellectual Property and Nokia
6  * %%
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ========================LICENSE_END===================================
19  */
20
21 package org.oransc.ric.portal.dashboard.model;
22
23 /**
24  * Model for message returned on failure, to be serialized as JSON.
25  */
26 public class ErrorTransport implements IDashboardResponse {
27
28         private Integer status;
29         private String error;
30         private String exception;
31
32         /**
33          * Builds an empty object.
34          */
35         public ErrorTransport() {
36                 // no-arg constructor
37         }
38
39         /**
40          * Builds an object with the specified values.
41          * 
42          * @param statusCode
43          *                       Integer value like 400
44          * @param errMsg
45          *                       Explanation
46          */
47         public ErrorTransport(int statusCode, String errMsg) {
48                 this(statusCode, errMsg, null);
49         }
50
51         /**
52          * Builds an object with the specified status code, message and a String version
53          * of the exception.
54          * 
55          * @param statusCode
56          *                       Integer value like 500
57          * @param errMsg
58          *                       Explanation
59          * @param exception
60          *                       Exception that should be reported; optional and ignored
61          *                       if null.
62          */
63         public ErrorTransport(int statusCode, String errMsg, Exception exception) {
64                 this.status = statusCode;
65                 this.error = errMsg;
66                 if (exception != null) {
67                         final int enough = 512;
68                         String exString = exception.toString();
69                         String exceptionMsg = exString.length() > enough ? exString.substring(0, enough) : exString;
70                         this.exception = exceptionMsg;
71                 }
72         }
73
74         public Integer getStatus() {
75                 return status;
76         }
77
78         public void setStatus(Integer status) {
79                 this.status = status;
80         }
81
82         public String getError() {
83                 return error;
84         }
85
86         public void setError(String error) {
87                 this.error = error;
88         }
89
90         public String getException() {
91                 return exception;
92         }
93
94         public void setException(String exception) {
95                 this.exception = exception;
96         }
97
98 }