AT&T 2.0.19 Code drop, stage 1
[aaf/authz.git] / misc / env / src / main / java / org / onap / aaf / misc / env / APIException.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 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
22 package org.onap.aaf.misc.env;
23
24
25 /**
26  * An Exception with the ability to hold a payload.<p>
27  * 
28  * This is important, because sometimes, the output of a Framework
29  * may be a descriptive object which doesn't inherit from Throwable
30  * and thus cannot be attached in "initCause".<p>
31  * 
32  * Examples may be a SOAP Fault.
33  * 
34  * @author Jonathan
35  *
36  */
37 public class APIException extends Exception {
38         
39         private Object payload = null;
40         
41         /**
42          * @param t
43          */
44         public APIException(Throwable t) {
45                 super(t);
46         }
47         
48         /**
49          * @param string
50          */
51         public APIException(String string) {
52                 super(string);
53         }
54
55         /**
56          * @param errorMessage
57          * @param t
58          */
59         public APIException(String errorMessage, Throwable t) {
60                 super(errorMessage,t);
61         }
62
63         /**
64          * Return payload, or null if none was set.  Type is up to the calling
65          * System.
66          * 
67          * @return Object
68          */
69         public Object getPayload() {
70                 return payload;
71         }
72
73         /**
74          * Set a specific payload into this Exception, which doesn't necessarily
75          * inherit from Throwable.
76          * 
77          * @param payload
78          * @return APIException
79          */
80         public APIException setPayload(Object payload) {
81                 this.payload = payload;
82                 return this;
83         }
84
85         /**
86          * Java expected serial ID
87          */
88         private static final long serialVersionUID = 3505343458251445169L;
89 }