Map.Entry<DocumentRef, List<Event>> eventContexts) {
List<Principal> addedMembers = new ArrayList<Principal>();
List<Principal> removedMembers = new ArrayList<Principal>();
for (Event event : eventContexts.getValue()) {
DocumentEventContext docCtx = (DocumentEventContext) event.getContext();
List<Principal> principals = (List<Principal>) docCtx.getProperty(CTX_PRINCIPALS_PROPERTY);
if (event.getName().equals(EVENT_MEMBERS_ADDED)) {
addedMembers.addAll(principals);
} else if (event.getName().equals(EVENT_MEMBERS_REMOVED)) {
removedMembers.addAll(principals);
}
}
if (!addedMembers.isEmpty() || !removedMembers.isEmpty()) {
DocumentEventContext context = (DocumentEventContext) eventContexts.getValue().get(
0).getContext();
notifyMembers(context, addedMembers, removedMembers);
}
}