protected Map<Document, Optional<String>> buildStatusChangeUpdates(Document metaAlert,
Iterable<Document> alerts,
MetaAlertStatus status) {
metaAlert.getDocument().put(MetaAlertConstants.STATUS_FIELD, status.getStatusString());
Map<Document, Optional<String>> updates = new HashMap<>();
updates.put(metaAlert, Optional.of(config.getMetaAlertIndex()));
for (Document alert : alerts) {
boolean metaAlertAdded = false;
boolean metaAlertRemoved = false;
if (MetaAlertStatus.ACTIVE.equals(status)) {
metaAlertAdded = addMetaAlertToAlert(metaAlert.getGuid(), alert);
}
if (MetaAlertStatus.INACTIVE.equals(status)) {
metaAlertRemoved = removeMetaAlertFromAlert(metaAlert.getGuid(), alert);
}
if (metaAlertAdded || metaAlertRemoved) {
updates.put(alert, Optional.empty());
}
}
return updates;
}