L2GW HwvtepHACache Utility class add in genius
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / datastoreutils / hwvtep / HwvtepAbstractDataTreeChangeListener.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 package org.opendaylight.genius.datastoreutils.hwvtep;
9
10 import java.util.concurrent.ExecutorService;
11 import org.opendaylight.genius.utils.hwvtep.HwvtepHACache;
12 import org.opendaylight.mdsal.binding.api.DataBroker;
13 import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
14 import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
15 import org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener;
16 import org.opendaylight.yangtools.yang.binding.DataObject;
17 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
18
19 public abstract class HwvtepAbstractDataTreeChangeListener<T extends DataObject,K extends DataTreeChangeListener<T>>
20         extends AbstractAsyncDataTreeChangeListener<T> {
21
22     public HwvtepAbstractDataTreeChangeListener(DataBroker dataBroker,DataTreeIdentifier dataTreeIdentifier,
23                                                 ExecutorService executorService) {
24         super(dataBroker, dataTreeIdentifier, executorService);
25     }
26
27     @Override
28     public void remove(InstanceIdentifier<T> identifier, T del) {
29         if (HwvtepHACache.getInstance().isHAEnabledDevice(identifier)) {
30             return;
31         }
32         removed(identifier, del);
33     }
34
35     @Override
36     public void update(InstanceIdentifier<T> identifier, T original, T update) {
37         if (HwvtepHACache.getInstance().isHAEnabledDevice(identifier)) {
38             return;
39         }
40         updated(identifier,original,update);
41     }
42
43     @Override
44     public void add(InstanceIdentifier<T> identifier, T add) {
45         if (HwvtepHACache.getInstance().isHAEnabledDevice(identifier)) {
46             return;
47         }
48         added(identifier,add);
49     }
50
51     protected abstract void removed(InstanceIdentifier<T> identifier, T del);
52
53     protected abstract void updated(InstanceIdentifier<T> identifier, T original, T update);
54
55     protected abstract void added(InstanceIdentifier<T> identifier, T add);
56
57
58 }