private DedupValue[] add(EventUniq eventEniq, AlertStreamEvent event, String stateFieldValue, String stateCloseValue) {
DedupValue dedupValue = null;
if (!events.containsKey(eventEniq)) {
dedupValue = createDedupValue(eventEniq, event, stateFieldValue);
ConcurrentLinkedDeque<DedupValue> dedupValues = new ConcurrentLinkedDeque<>();
dedupValues.add(dedupValue);
events.put(eventEniq, dedupValues);
LOG.info("{} Add new dedup key {}, and value {}", this.publishName, eventEniq, dedupValues);
} else if (!StringUtils.equalsIgnoreCase(stateFieldValue,
events.get(eventEniq).getLast().getStateFieldValue())) {
DedupValue lastDedupValue = events.get(eventEniq).getLast();
dedupValue = updateDedupValue(lastDedupValue, eventEniq, event, stateFieldValue, stateCloseValue);
LOG.info("{} Update dedup key {}, and value {}", this.publishName, eventEniq, dedupValue);
}
if (dedupValue == null) {
return null;
}
return new DedupValue[] {dedupValue};
}