+ private void removeCandidateFromEntities(final MemberName member) {
+ final BatchedModifications modifications = commitCoordinator.newBatchedModifications();
+ searchForEntities((entityTypeNode, entityNode) -> {
+ if (hasCandidate(entityNode, member)) {
+ YangInstanceIdentifier entityId =
+ (YangInstanceIdentifier) entityNode.getIdentifier().getKeyValues().get(ENTITY_ID_QNAME);
+ YangInstanceIdentifier candidatePath = candidatePath(
+ entityTypeNode.getIdentifier().getKeyValues().get(ENTITY_TYPE_QNAME).toString(),
+ entityId, member.getName());
+
+ LOG.info("{}: Found entity {}, removing candidate {}, path {}", persistenceId(), entityId,
+ member, candidatePath);
+
+ modifications.addModification(new DeleteModification(candidatePath));
+ }
+ });
+
+ commitCoordinator.commitModifications(modifications, this);
+ }
+
+ private static boolean hasCandidate(final MapEntryNode entity, final MemberName candidateName) {
+ return ((MapNode)entity.getChild(CANDIDATE_NODE_ID).get()).getChild(candidateNodeKey(candidateName.getName()))
+ .isPresent();
+ }
+
+ private void searchForEntities(final EntityWalker walker) {