1 package org.opendaylight.netvirt.bgpmanager.test;
3 import java.util.Collection;
5 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
6 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
7 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
8 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
9 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
10 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.FibEntries;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.fibentries.VrfTables;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.fibmanager.rev150330.vrfentries.VrfEntry;
13 import org.opendaylight.yangtools.concepts.ListenerRegistration;
14 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
16 public class MockFibManager extends AbstractMockFibManager<VrfEntry> {
18 private int nFibEntries = 0;
20 private ListenerRegistration<MockFibManager> listenerRegistration;
22 public MockFibManager( final DataBroker db) {
24 registerListener(db) ;
27 private void registerListener(final DataBroker db) {
28 final DataTreeIdentifier<VrfEntry> treeId = new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, getWildCardPath());
30 listenerRegistration = db.registerDataTreeChangeListener(treeId, MockFibManager.this);
31 } catch (final Exception e) {
32 throw new IllegalStateException("FibManager registration Listener fail! System needs restart.", e);
36 private InstanceIdentifier<VrfEntry> getWildCardPath() {
37 return InstanceIdentifier.create(FibEntries.class).child(VrfTables.class).child(VrfEntry.class);
41 public void onDataTreeChanged(Collection<DataTreeModification<VrfEntry>> changes) {
42 for (DataTreeModification<VrfEntry> change : changes) {
43 final InstanceIdentifier<VrfEntry> key = change.getRootPath().getRootIdentifier();
44 final DataObjectModification<VrfEntry> mod = change.getRootNode();
46 switch (mod.getModificationType()) {
51 if (mod.getDataBefore() == null) {
54 // UPDATE COUNT UNCHANGED
58 throw new IllegalArgumentException("Unhandled modification type " + mod.getModificationType());
63 public int getDataChgCount() {