2 * Copyright 2017-2023 ZTE Corporation.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.onap.holmes.common.api.stat;
22 import java.io.Serializable;
23 import java.util.HashMap;
25 import java.util.TimeZone;
29 public class VesAlarm implements Cloneable, Serializable{
30 private String domain;
31 private String eventId;
32 private String eventName;
33 private String eventType;
34 //Temporarily make it transient cuz no details of this field is provided and it is not used for now.
35 transient private Object internalHeaderFields;
36 private Long lastEpochMicrosec;
37 private String nfcNamingCode;
38 private String nfNamingCode;
39 private String priority;
40 private String reportingEntityId;
41 private String reportingEntityName;
42 private Integer sequence;
43 private String sourceId;
44 private String sourceName;
45 private Long startEpochMicrosec;
46 private String version;
48 private Map<String, String> alarmAdditionalInformation;
49 private String alarmCondition;
50 private String alarmInterfaceA;
51 private String eventCategory;
52 private String eventSeverity;
53 private String eventSourceType;
54 private String faultFieldsVersion;
55 private String specificProblem;
56 private String vfStatus;
57 private String parentId;
58 private int alarmIsCleared = 0; //mark as 1 when alarm type is cleared, else mark as 0
59 private int rootFlag = 0; // mark as 1 when alarm is a root alarm , else mark as 0
60 private String nfVendorName;
61 private String vesEventListenerVersion;
62 private TimeZone timeZoneOffset;
65 public int hashCode() {
66 return (this.getSourceId() + this.eventName.replace("Cleared", "")).hashCode();
70 public boolean equals(Object object) {
71 if (object == null || !(object instanceof VesAlarm)) {
74 return this.eventName.replace("Cleared", "")
75 .equals(((VesAlarm) object).getEventName().replace("Cleared", ""))
76 && this.getSourceId().equals(((VesAlarm) object).getSourceId());
80 public Object clone() throws CloneNotSupportedException {
81 VesAlarm vesAlarm = new VesAlarm();
83 vesAlarm.setDomain(this.domain);
84 vesAlarm.setEventId(this.getEventId());
85 vesAlarm.setEventName(this.getEventName());
86 vesAlarm.setEventType(this.getEventType());
87 vesAlarm.setInternalHeaderFields(this.getInternalHeaderFields());
88 vesAlarm.setLastEpochMicrosec(this.getLastEpochMicrosec());
89 vesAlarm.setNfcNamingCode(this.nfcNamingCode);
90 vesAlarm.setNfNamingCode(this.getNfNamingCode());
91 vesAlarm.setPriority(this.getPriority());
92 vesAlarm.setReportingEntityId(this.getReportingEntityId());
93 vesAlarm.setReportingEntityName(this.reportingEntityName);
94 vesAlarm.setSequence(this.getSequence());
95 vesAlarm.setSourceId(this.getSourceId());
96 vesAlarm.setSourceName(this.getSourceName());
97 vesAlarm.setStartEpochMicrosec(this.getStartEpochMicrosec());
98 vesAlarm.setVersion(this.getVersion());
99 if (alarmAdditionalInformation != null) {
100 Map<String, String> alarmAdditionalFields = new HashMap<String, String>();
101 for(String key: alarmAdditionalInformation.keySet()) {
102 alarmAdditionalFields.put(key, alarmAdditionalInformation.get(key));
104 vesAlarm.setAlarmAdditionalInformation(alarmAdditionalFields);
106 vesAlarm.setAlarmCondition(this.getAlarmCondition());
107 vesAlarm.setAlarmInterfaceA(this.getAlarmInterfaceA());
108 vesAlarm.setEventCategory(this.getEventCategory());
109 vesAlarm.setEventSeverity(this.getEventSeverity());
110 vesAlarm.setEventSourceType(this.getEventSourceType());
111 vesAlarm.setFaultFieldsVersion(this.getFaultFieldsVersion());
112 vesAlarm.setSpecificProblem(this.getSpecificProblem());
113 vesAlarm.setVfStatus(this.vfStatus);
114 vesAlarm.setAlarmIsCleared(this.alarmIsCleared);
115 vesAlarm.setRootFlag(this.rootFlag);
116 vesAlarm.setVesEventListenerVersion(this.vesEventListenerVersion);
117 vesAlarm.setNfVendorName(this.nfVendorName);
118 vesAlarm.setTimeZoneOffset(this.timeZoneOffset);