Merge "VES Heartbeat and Software Management Feature"
[oam/tr069-adapter.git] / ves-agent / src / main / java / org / commscope / tr069adapter / vesagent / fault / ExpeditedEvent.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.vesagent.fault;\r
20 \r
21 \r
22 import java.io.Serializable;\r
23 import java.util.Date;\r
24 \r
25 import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
26 import org.commscope.tr069adapter.vesagent.exception.InvalidFaultOperationException;\r
27 import org.slf4j.Logger;\r
28 import org.slf4j.LoggerFactory;\r
29 \r
30 public class ExpeditedEvent implements Serializable {\r
31   private static final long serialVersionUID = -6862753992876923284L;\r
32 \r
33   private Date eventTime;\r
34 \r
35   private String alarmIdentifier;\r
36 \r
37   private NotificationTypeEnum notificationType;\r
38 \r
39   private String managedObjectInstance;\r
40 \r
41   private String eventType;\r
42 \r
43   private String probableCause;\r
44 \r
45   private String specificProblem;\r
46 \r
47   private AlarmFrameWorkSeverityEnum perceivedSeverity;\r
48 \r
49   private String additionalText;\r
50 \r
51   private String additionalInformation;\r
52   private static final Logger logger = LoggerFactory.getLogger(ExpeditedEvent.class);\r
53 \r
54   public Date getEventTime() {\r
55     return eventTime;\r
56   }\r
57 \r
58   public void setEventTime(Date eventTime) {\r
59     this.eventTime = eventTime;\r
60   }\r
61 \r
62   public String getAlarmIdentifier() {\r
63     return alarmIdentifier;\r
64   }\r
65 \r
66   public void setAlarmIdentifier(String alarmIdentifier) {\r
67     this.alarmIdentifier = alarmIdentifier;\r
68   }\r
69 \r
70   public NotificationTypeEnum getNotificationType() {\r
71     return notificationType;\r
72   }\r
73 \r
74   public void setNotificationType(NotificationTypeEnum notificationType) {\r
75     this.notificationType = notificationType;\r
76   }\r
77 \r
78   public String getManagedObjectInstance() {\r
79     return managedObjectInstance;\r
80   }\r
81 \r
82   public void setManagedObjectInstance(String managedObjectInstance) {\r
83     this.managedObjectInstance = managedObjectInstance;\r
84   }\r
85 \r
86   public String getEventType() {\r
87     return eventType;\r
88   }\r
89 \r
90   public void setEventType(String eventType) {\r
91     this.eventType = eventType;\r
92   }\r
93 \r
94   public String getProbableCause() {\r
95     return probableCause;\r
96   }\r
97 \r
98   public void setProbableCause(String probableCause) {\r
99     this.probableCause = probableCause;\r
100   }\r
101 \r
102   public String getSpecificProblem() {\r
103     return specificProblem;\r
104   }\r
105 \r
106   public void setSpecificProblem(String specificProblem) {\r
107     this.specificProblem = specificProblem;\r
108   }\r
109 \r
110   public AlarmFrameWorkSeverityEnum getPerceivedSeverity() {\r
111     return perceivedSeverity;\r
112   }\r
113 \r
114   public void setPerceivedSeverity(AlarmFrameWorkSeverityEnum perceivedSeverity) {\r
115     this.perceivedSeverity = perceivedSeverity;\r
116   }\r
117 \r
118   public String getAdditionalText() {\r
119     return additionalText;\r
120   }\r
121 \r
122   public void setAdditionalText(String additionalText) {\r
123     this.additionalText = additionalText;\r
124   }\r
125 \r
126   public String getAdditionalInformation() {\r
127     return additionalInformation;\r
128   }\r
129 \r
130   public void setAdditionalInformation(String additionalInformation) {\r
131     this.additionalInformation = additionalInformation;\r
132   }\r
133 \r
134   public void parse(ParameterDTO parameter, String tempEEParam)\r
135       throws InvalidFaultOperationException {\r
136     if (null == parameter.getParamValue()) {\r
137       return;\r
138     }\r
139 \r
140     if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_ALARMIDENTIFIER)) {\r
141       setAlarmIdentifier(parameter.getParamValue());\r
142     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_NOTIFICATIONTYPE)) {\r
143       validateNotificationType(parameter.getParamValue());\r
144     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_MANAGEDOBJECTINSTANCE)\r
145         || tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_OBJECTINSTANCE)) {\r
146       setManagedObjectInstance(parameter.getParamValue());\r
147     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_EVENTTYPE)) {\r
148       setEventType(parameter.getParamValue());\r
149     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_FAULTCODE)) {\r
150       setEventType(parameter.getParamValue());\r
151       setAlarmIdentifier(parameter.getParamValue());\r
152     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_PROBABLECAUSE)) {\r
153       setProbableCause(parameter.getParamValue());\r
154     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_SPECIFICPROBLEM)\r
155         || tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_ALARMMESSAGE)) {\r
156       setSpecificProblem(parameter.getParamValue());\r
157     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_PERCEIVEDSEVERITY)\r
158         && !parameter.getParamValue().equals("")) {\r
159       validateSeverity(parameter.getParamValue());\r
160       setPerceivedSeverity(\r
161           AlarmFrameWorkSeverityEnum.valueOf(((String) parameter.getParamValue()).toUpperCase()));\r
162     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_ADDITIONALTEXT)\r
163         || tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_FAULTCOMPONENT)) {\r
164       setAdditionalText(parameter.getParamValue());\r
165     } else if (tempEEParam.equals(DeviceAlarmConstant.EXPEDITED_EVENT_ADDITIONALINFORMATION)) {\r
166       setAdditionalInformation(parameter.getParamValue());\r
167     }\r
168   }\r
169 \r
170   private void validateSeverity(String severity) throws InvalidFaultOperationException {\r
171     try {\r
172       AlarmFrameWorkSeverityEnum.valueOf(severity.toUpperCase());\r
173       logger.debug("Severity is validated successfully : {}", severity);\r
174     } catch (Exception e) {\r
175       logger.error("Invalid Severity: Severity : {}", severity);\r
176       throw new InvalidFaultOperationException(\r
177           "Invalid Severity: Severity " + severity + " is not supported");\r
178     }\r
179   }\r
180 \r
181   private void validateNotificationType(String notificationType)\r
182       throws InvalidFaultOperationException {\r
183     try {\r
184       AlarmNotificationTypeEnum.valueOf(notificationType.toUpperCase());\r
185       logger.debug("NotificationType is {} validated successfully", notificationType);\r
186     } catch (Exception e) {\r
187       logger.error("Invalid device alarm notification type: NotificationType : {}",\r
188           notificationType);\r
189       throw new InvalidFaultOperationException(\r
190           "Invalid NotificationType: notificationType <" + notificationType + "> is not supported");\r
191     }\r
192   }\r
193 \r
194 }\r