aboutsummaryrefslogtreecommitdiffstats
path: root/aai-els-onap-logging/src/main/java/org/onap/aai/logging/ErrorObject.java
blob: 20068e9e41d94c7952a2aa5383554159449bb42e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
/**
 * ============LICENSE_START=======================================================
 * org.onap.aai
 * ================================================================================
 * Copyright © 2017-2018 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.onap.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;
    private String details;
    private String aaiElsErrorCode = AaiElsErrorCode.UNKNOWN_ERROR;

    /**
     * Instantiates a new error object.
     */
    public ErrorObject() {
        super();
    }

    /**
     * Creates an error object
     *
     * @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);
        this.setAaiElsErrorCode(AaiElsErrorCode.UNKNOWN_ERROR);
    }

    // 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);
        this.setAaiElsErrorCode(AaiElsErrorCode.UNKNOWN_ERROR);
    }

    /**
     * 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);
        this.setAaiElsErrorCode(AaiElsErrorCode.UNKNOWN_ERROR);
    }

    /**
     * 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 details.
     *
     * @return the details
     */
    public String getDetails() {
        return details;
    }

    /**
     * Sets the details.
     *
     * @param details the new details
     */
    public void setDetails(String details) {
        this.details = details == null ? "" : details;
    }

    /**
     * Sets the aai els error code.
     *
     * @param elsErrorCode the new code
     */
    public void setAaiElsErrorCode(String elsErrorCode) {
        aaiElsErrorCode = elsErrorCode;
    }

    /**
     * Gets the aai els error code.
     *
     * @return the code
     */
    public String getAaiElsErrorCode() {
        return (aaiElsErrorCode);
    }

    /**
     * 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;
    }

    /**
     * Gets the severity Code. This is also the string
     * configured in Nagios to alert on
     *
     * @return the severity
     */
    // Get the numerical value of severity
    public String getSeverityCode(String severity) {
        String severityCode = "";
        switch (severity) {
            case "WARN":
                severityCode = "1";
                break;
            case "ERROR":
                severityCode = "2";
                break;
            case "FATAL":
                severityCode = "3";
                break;
        }
        return severityCode;
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public String toString() {
        return "ErrorObject [errorCode=" + errorCode + ", errorText=" + errorText + ", restErrorCode=" + restErrorCode
                + ", httpResponseCode=" + httpResponseCode + ", severity=" + severity + ", disposition=" + disposition
                + ", category=" + category + "]";
    }

}