e86321f9b4afce906723a8fdec6835994f877974
[oam/tr069-adapter.git] / acs / common / src / main / java / org / commscope / tr069adapter / acs / common / exception / ACSException.java
1 /*\r
2  * ============LICENSE_START========================================================================\r
3  * ONAP : tr-069-adapter\r
4  * =================================================================================================\r
5  * Copyright (C) 2020 CommScope Inc Intellectual Property.\r
6  * =================================================================================================\r
7  * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,\r
8  * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You\r
9  * may obtain a copy of the License at\r
10  *\r
11  * http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\r
14  * either express or implied. See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  * ===============LICENSE_END=======================================================================\r
17  */\r
18 \r
19 package org.commscope.tr069adapter.acs.common.exception;\r
20 \r
21 import org.commscope.tr069adapter.acs.common.utils.ErrorCode;\r
22 import org.commscope.tr069adapter.acs.common.utils.Utility;\r
23 \r
24 public class ACSException extends Exception {\r
25 \r
26   private static final long serialVersionUID = 9116478433222830454L;\r
27 \r
28   private static final String ERRORMSG_PREFIX = "TR069";\r
29 \r
30   private ErrorCode errorCode;\r
31 \r
32   private String[] arguments;\r
33 \r
34   private String message;\r
35 \r
36   /**\r
37    * @param s\r
38    */\r
39   public ACSException(String s) {\r
40     super(s);\r
41   }\r
42 \r
43   /**\r
44    * @param errorCode\r
45    */\r
46   public ACSException(ErrorCode errorCode) {\r
47     super();\r
48     this.errorCode = errorCode;\r
49     setErrorMessage(getErrorMessage());\r
50   }\r
51 \r
52   /**\r
53    * @param errorCode\r
54    * @param args\r
55    */\r
56   public ACSException(ErrorCode errorCode, String... args) {\r
57     super();\r
58     this.errorCode = errorCode;\r
59     arguments = args;\r
60     setErrorMessage(getErrorMessage());\r
61   }\r
62 \r
63   public ErrorCode getErrorCode() {\r
64     return errorCode;\r
65   }\r
66 \r
67   public void setErrorCode(ErrorCode errorCode) {\r
68     this.errorCode = errorCode;\r
69   }\r
70 \r
71   @Override\r
72   public String getMessage() {\r
73     return message;\r
74   }\r
75 \r
76   /**\r
77    * All the error messages defined in the TR069 ErrorMessage properties must have prefix "TR069"\r
78    * \r
79    * @return\r
80    */\r
81   private String getErrorMessage() {\r
82     String key = ERRORMSG_PREFIX + "." + errorCode.getErrorCodeKey();\r
83     return Utility.getMessage(key, arguments);\r
84   }\r
85 \r
86   private void setErrorMessage(String message) {\r
87     this.message = message;\r
88   }\r
89 }\r