Introduce EntityOwnerSelectionStrategy
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / entityownership / EntityOwnersModel.java
index 1c97b4818b03bdce1b41e34aa21819d5ac461078..0be765000f9c295951efb03da1078b0cd87797b7 100644 (file)
@@ -106,11 +106,23 @@ final class EntityOwnersModel {
         return ImmutableNodes.mapEntry(Candidate.QNAME, CANDIDATE_NAME_QNAME, candidateName);
     }
 
-    static NormalizedNode<?, ?> entityEntryWithOwner(YangInstanceIdentifier entityId, String owner) {
+    static MapEntryNode entityEntryWithOwner(YangInstanceIdentifier entityId, String owner) {
         return ImmutableNodes.mapEntryBuilder(ENTITY_QNAME, ENTITY_ID_QNAME, entityId).addChild(
                 ImmutableNodes.leafNode(ENTITY_OWNER_QNAME, owner)).build();
     }
 
+    static String entityTypeFromEntityPath(YangInstanceIdentifier entityPath){
+        YangInstanceIdentifier parent = entityPath;
+        while(!parent.isEmpty()) {
+            if (ENTITY_TYPE_QNAME.equals(parent.getLastPathArgument().getNodeType())) {
+                YangInstanceIdentifier.NodeIdentifierWithPredicates entityTypeLastPathArgument = (YangInstanceIdentifier.NodeIdentifierWithPredicates) parent.getLastPathArgument();
+                return (String) entityTypeLastPathArgument.getKeyValues().get(ENTITY_TYPE_QNAME);
+            }
+            parent = parent.getParent();
+        }
+        return null;
+    }
+
     static Entity createEntity(YangInstanceIdentifier entityPath) {
         String entityType = null;
         YangInstanceIdentifier entityId = null;