public Object getFieldValue(_Fields field) { switch (field) { case ROLE: return getRole(); case ADD_GROUPS: return getAddGroups(); case DEL_GROUPS: return getDelGroups(); } throw new IllegalStateException(); }
private void applyRoleUpdates(PermissionsUpdate update) { for (TRoleChanges rUpdate : update.getRoleUpdates()) { if (rUpdate.getRole().equals(PermissionsUpdate.ALL_ROLES)) { // Request to remove group from all roles String groupToRemove = rUpdate.getDelGroups().iterator().next(); for (RoleInfo rInfo : perms.getAllRoles()) { rInfo.delGroup(groupToRemove); } } RoleInfo rInfo = perms.getRoleInfo(rUpdate.getRole()); for (String group : rUpdate.getAddGroups()) { if (rInfo == null) { rInfo = new RoleInfo(rUpdate.getRole()); } rInfo.addGroup(group); } if (rInfo != null) { perms.addRoleInfo(rInfo); for (String group : rUpdate.getDelGroups()) { if (group.equals(PermissionsUpdate.ALL_GROUPS)) { perms.delRoleInfo(rInfo.getRole()); break; } // If there are no groups to remove, rUpdate.getDelGroups() will // return empty list and this code will not be reached rInfo.delGroup(group); } } } }