Merge dev/fluorine work across to master
[unimgr.git] / ovs-driver / src / main / java / org / opendaylight / unimgr / mef / nrp / ovs / util / OvsCapabilitiesService.java
diff --git a/ovs-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/ovs/util/OvsCapabilitiesService.java b/ovs-driver/src/main/java/org/opendaylight/unimgr/mef/nrp/ovs/util/OvsCapabilitiesService.java
new file mode 100644 (file)
index 0000000..53756ac
--- /dev/null
@@ -0,0 +1,32 @@
+package org.opendaylight.unimgr.mef.nrp.ovs.util;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.unimgr.utils.CapabilitiesService;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
+import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
+
+import java.util.function.BiFunction;
+
+/**
+ * @author bartosz.michalik@amartus.com
+ */
+public class OvsCapabilitiesService extends CapabilitiesService {
+    public OvsCapabilitiesService(DataBroker dataBroker) {
+        super(dataBroker);
+    }
+
+    public enum NodeCapability implements Capability<Node> {
+        OVSDB((dbBroker,node) -> node.augmentation(OvsdbBridgeAugmentation.class) != null);
+
+        private BiFunction<DataBroker, Node, Boolean> condition;
+
+        NodeCapability(BiFunction<DataBroker, Node, Boolean> condition) {
+            this.condition = condition;
+        }
+
+        @Override
+        public BiFunction<DataBroker, Node, Boolean> getCondition() {
+            return condition;
+        }
+    }
+}