2 * Copyright (c) 2018 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.openflowplugin.applications.southboundcli.alarm;
10 import com.google.common.collect.ImmutableList;
11 import java.util.ArrayList;
12 import java.util.List;
13 import java.util.concurrent.atomic.AtomicLong;
14 import javax.management.AttributeChangeNotification;
15 import javax.management.NotificationBroadcasterSupport;
17 public final class NodeReconciliationAlarm extends NotificationBroadcasterSupport
18 implements NodeReconciliationAlarmMBean {
19 private final AtomicLong sequenceNumber = new AtomicLong(1);
21 private volatile List<String> raiseAlarmObject = new ArrayList<>();
22 private volatile List<String> clearAlarmObject = new ArrayList<>();
25 public void setRaiseAlarmObject(final List<String> raiseAlarmObject) {
26 this.raiseAlarmObject = raiseAlarmObject;
28 sendRaiseAlarmNotification(this.raiseAlarmObject);
31 private void sendRaiseAlarmNotification(final List<String> alarmObject) {
32 sendNotification(new AttributeChangeNotification(this, sequenceNumber.getAndIncrement(),
33 System.currentTimeMillis(), "raise alarm object notified ", "raiseAlarmObject", "ArrayList", "",
38 public List<String> getRaiseAlarmObject() {
39 return raiseAlarmObject;
43 public void setClearAlarmObject(final List<String> clearAlarmObject) {
44 this.clearAlarmObject = clearAlarmObject;
45 sendClearAlarmNotification(this.clearAlarmObject);
48 private void sendClearAlarmNotification(final List<String> alarmObject) {
49 sendNotification(new AttributeChangeNotification(this, sequenceNumber.getAndIncrement(),
50 System.currentTimeMillis(), "clear alarm object notified ", "clearAlarmObject", "ArrayList", "",
55 public List<String> getClearAlarmObject() {
56 return clearAlarmObject;
60 public void raiseAlarm(final String alarmName, final String additionalText, final String source) {
61 sendRaiseAlarmNotification(ImmutableList.of(alarmName, additionalText, source));
65 public void clearAlarm(final String alarmName, final String additionalText, final String source) {
66 sendClearAlarmNotification(ImmutableList.of(alarmName, additionalText, source));