1 package org.openecomp.sdc.be.components.impl.group;
3 import org.apache.commons.collections.MapUtils;
4 import org.openecomp.sdc.be.model.GroupDefinition;
5 import org.springframework.stereotype.Component;
10 import static org.apache.commons.collections.MapUtils.isEmpty;
13 * A Helper class which handles altering the members state of a group
16 public class GroupMembersUpdater {
18 public void removeMember(List<GroupDefinition> groups, String memberId) {
19 groups.forEach(group -> removeGroupMember(group, memberId));
22 public void replaceMember(List<GroupDefinition> groups, String oldMemberId, String newMemberId) {
23 groups.forEach(grp -> replaceMember(grp, oldMemberId, newMemberId));
26 private void removeGroupMember(GroupDefinition group, String memberId) {
27 Map<String, String> membersNameToId = group.getMembers();
28 String groupMemberKey = findGroupMemberKey(membersNameToId, memberId);
29 if (groupMemberKey != null) {
30 membersNameToId.remove(groupMemberKey);
34 private void replaceMember(GroupDefinition group, String oldMemberId, String newMemberId) {
35 Map<String, String> membersNameToId = group.getMembers();
36 String groupMemberKey = findGroupMemberKey(membersNameToId, oldMemberId);
37 if (groupMemberKey != null) {
38 membersNameToId.replace(groupMemberKey, newMemberId);
42 private String findGroupMemberKey(Map<String, String> members, String memberToFind) {
43 if (isEmpty(members)) {
46 Map invertedMap = MapUtils.invertMap(members);
47 if (!invertedMap.containsKey(memberToFind)) {
50 return invertedMap.get(memberToFind).toString();