2 * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.genius.itm.monitoring;
10 import java.util.ArrayList;
11 import java.util.List;
12 import javax.management.AttributeChangeNotification;
13 import javax.management.NotificationBroadcasterSupport;
16 * Implementation of the DataPath Alarm MBean. It can basically allow others to
17 * rise and clear alarms occurred on the Data Path.
19 * @author Ericsson India Global Services Pvt Ltd. and others
22 public class DataPathAlarm extends NotificationBroadcasterSupport implements DataPathAlarmMBean {
23 private long sequenceNumber = 1;
25 private List<String> raiseAlarmObject = new ArrayList<>();
26 private List<String> clearAlarmObject = new ArrayList<>();
29 public void setRaiseAlarmObject(List<String> raiseAlarmObject) {
30 this.raiseAlarmObject = raiseAlarmObject;
32 sendNotification(new AttributeChangeNotification(this, sequenceNumber++, System.currentTimeMillis(),
33 "raise alarm object notified ", "raiseAlarmObject", "ArrayList", "", this.raiseAlarmObject));
37 public List<String> getRaiseAlarmObject() {
38 return raiseAlarmObject;
42 public void setClearAlarmObject(List<String> clearAlarmObject) {
43 this.clearAlarmObject = clearAlarmObject;
44 sendNotification(new AttributeChangeNotification(this, sequenceNumber++, System.currentTimeMillis(),
45 "clear alarm object notified ", "clearAlarmObject", "ArrayList", "", this.clearAlarmObject));
49 public List<String> getClearAlarmObject() {
50 return clearAlarmObject;
54 public synchronized void raiseAlarm(String alarmName, String additionalText, String source) {
55 raiseAlarmObject.add(alarmName);
56 raiseAlarmObject.add(additionalText);
57 raiseAlarmObject.add(source);
58 setRaiseAlarmObject(raiseAlarmObject);
59 raiseAlarmObject.clear();
63 public synchronized void clearAlarm(String alarmName, String additionalText, String source) {
64 clearAlarmObject.add(alarmName);
65 clearAlarmObject.add(additionalText);
66 clearAlarmObject.add(source);
67 setClearAlarmObject(clearAlarmObject);
68 clearAlarmObject.clear();