Catalog alignment
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / impl / exceptions / ComponentException.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
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.openecomp.sdc.be.components.impl.exceptions;
22
23 import org.openecomp.sdc.be.components.impl.ResponseFormatManager;
24 import org.openecomp.sdc.be.dao.api.ActionStatus;
25 import org.openecomp.sdc.be.model.Resource;
26 import org.openecomp.sdc.exception.ResponseFormat;
27
28 import javax.annotation.Nullable;
29
30 public class ComponentException extends RuntimeException {
31
32     /**
33      * This class will be initialized either by action status and params or by ResponseFormat
34      */
35
36     private final transient ResponseFormat responseFormat;
37     private final ActionStatus actionStatus;
38     private final String[] params;
39
40     public Resource getResource() {
41         return resource;
42     }
43
44     private final Resource resource;
45
46     public ComponentException(ResponseFormat responseFormat) {
47         this(responseFormat, ActionStatus.OK, null);
48     }
49
50     public ComponentException(ActionStatus actionStatus, String... params) {
51         this(ResponseFormatManager.getInstance().getResponseFormat(actionStatus, params), actionStatus, null, params);
52     }
53
54     public ComponentException(ActionStatus actionStatus, Resource resource, String... params) {
55         this(ResponseFormatManager.getInstance().getResponseFormat(actionStatus, params), actionStatus, resource, params);
56     }
57
58     private ComponentException(ResponseFormat responseFormat, ActionStatus actionStatus, Resource resource, String... params) {
59         this.actionStatus = actionStatus;
60         this.params = params.clone();
61         this.responseFormat = responseFormat;
62         this.resource = resource;
63     }
64
65     @Nullable
66     public ResponseFormat getResponseFormat() {
67         return responseFormat;
68     }
69
70     public ActionStatus getActionStatus() {
71         return actionStatus;
72     }
73
74     public String[] getParams() {
75         return params.clone();
76     }
77
78
79 }