Integration of fcaps applications
[netvirt.git] / fcapsapplication / fcapsapplication-jmxapi / src / main / java / org / opendaylight / vpnservice / fcapsappjmx / ControlPathFailureAlarm.java
1 /*
2  * Copyright (c) 2016 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.vpnservice.fcapsappjmx;
10
11 import javax.management.AttributeChangeNotification;
12 import javax.management.Notification;
13 import javax.management.NotificationBroadcasterSupport;
14 import java.util.ArrayList;
15
16 public class ControlPathFailureAlarm extends NotificationBroadcasterSupport implements ControlPathFailureAlarmMBean {
17
18     ArrayList<String> raiseAlarmObject = new ArrayList<String>();
19     ArrayList<String> clearAlarmObject = new ArrayList<String>();
20     private long sequenceNumber = 1;
21
22     public void setRaiseAlarmObject(ArrayList<String> raiseAlarmObject) {
23         this.raiseAlarmObject = raiseAlarmObject;
24
25         Notification notif = new AttributeChangeNotification(this,
26                 sequenceNumber++, System.currentTimeMillis(),
27                 "raise alarm object notified ", "raiseAlarmObject", "ArrayList",
28                 "", this.raiseAlarmObject);
29         sendNotification(notif);
30     }
31
32     public ArrayList<String> getRaiseAlarmObject() {
33         return raiseAlarmObject;
34     }
35
36     public void setClearAlarmObject(ArrayList<String> clearAlarmObject) {
37         this.clearAlarmObject = clearAlarmObject;
38
39         Notification notif = new AttributeChangeNotification(this,
40                 sequenceNumber++, System.currentTimeMillis(),
41                 "clear alarm object notified ", "clearAlarmObject", "ArrayList",
42                 "", this.clearAlarmObject);
43         sendNotification(notif);
44     }
45
46     public ArrayList<String> getClearAlarmObject() {
47         return clearAlarmObject;
48     }
49
50     public synchronized void raiseAlarm(String alarmName, String additionalText, String source) {
51         raiseAlarmObject.add(alarmName);
52         raiseAlarmObject.add(additionalText);
53         raiseAlarmObject.add(source);
54         setRaiseAlarmObject(raiseAlarmObject);
55         raiseAlarmObject.clear();
56     }
57
58     public synchronized void clearAlarm(String alarmName, String additionalText, String source) {
59         clearAlarmObject.add(alarmName);
60         clearAlarmObject.add(additionalText);
61         clearAlarmObject.add(source);
62         setClearAlarmObject(clearAlarmObject);
63         clearAlarmObject.clear();
64     }
65 }