RemoteDeviceDataBroker proxy
[netconf.git] / opendaylight / netconf / abstract-topology / src / main / java / org / opendaylight / netconf / topology / util / NodeRoleChangeStrategy.java
index 55bdb2e2dd071e548c387337b28dd2388e7c74f4..3cafd35b55f73391d35ac712c65cbc1eba9c85fa 100644 (file)
@@ -27,6 +27,7 @@ public class NodeRoleChangeStrategy implements RoleChangeStrategy, EntityOwnersh
     private final EntityOwnershipService entityOwnershipService;
     private final String entityType;
     private final String entityName;
+    private final Entity entity;
     private NodeListener ownershipCandidate;
 
     private EntityOwnershipCandidateRegistration candidateRegistration = null;
@@ -38,6 +39,7 @@ public class NodeRoleChangeStrategy implements RoleChangeStrategy, EntityOwnersh
         this.entityOwnershipService = entityOwnershipService;
         this.entityType = entityType + "/" + entityName;
         this.entityName = entityName;
+        this.entity = new Entity(this.entityType, entityName);
     }
 
     @Override
@@ -48,7 +50,7 @@ public class NodeRoleChangeStrategy implements RoleChangeStrategy, EntityOwnersh
             if (candidateRegistration != null) {
                 unregisterRoleCandidate();
             }
-            candidateRegistration = entityOwnershipService.registerCandidate(new Entity(entityType, entityName));
+            candidateRegistration = entityOwnershipService.registerCandidate(entity);
             ownershipListenerRegistration = entityOwnershipService.registerListener(entityType, this);
         } catch (CandidateAlreadyRegisteredException e) {
             LOG.error("Candidate already registered for election", e);
@@ -65,6 +67,11 @@ public class NodeRoleChangeStrategy implements RoleChangeStrategy, EntityOwnersh
         ownershipListenerRegistration = null;
     }
 
+    @Override
+    public boolean isCandidateRegistered() {
+        return entityOwnershipService.isCandidateRegistered(entity);
+    }
+
     @Override
     public void onRoleChanged(RoleChangeDTO roleChangeDTO) {
         LOG.debug("Role was changed {}", roleChangeDTO);