in data-index/data-index-storage/data-index-storage-common/src/main/java/org/kie/kogito/index/storage/merger/UserTaskInstanceCommentDataEventMerger.java [37:67]
public UserTaskInstance merge(UserTaskInstance userTaskInstance, UserTaskInstanceDataEvent<?> data) {
UserTaskInstanceCommentDataEvent event = (UserTaskInstanceCommentDataEvent) data;
UserTaskInstanceCommentEventBody body = event.getData();
List<Comment> comments = userTaskInstance.getComments();
if (comments == null) {
comments = new ArrayList<>();
userTaskInstance.setComments(comments);
}
switch (body.getEventType()) {
case UserTaskInstanceCommentEventBody.EVENT_TYPE_ADDED:
case UserTaskInstanceCommentEventBody.EVENT_TYPE_CHANGE:
Optional<Comment> found = comments.stream().filter(e -> e.getId().equals(body.getCommentId())).findAny();
Comment comment;
if (found.isEmpty()) {
comment = new Comment();
comments.add(comment);
} else {
comment = found.get();
}
comment.setId(body.getCommentId());
comment.setContent(body.getCommentContent());
comment.setUpdatedBy(body.getEventUser() != null ? body.getEventUser() : "unknown");
comment.setUpdatedAt(DateTimeUtils.toZonedDateTime(body.getEventDate()));
break;
case UserTaskInstanceCommentEventBody.EVENT_TYPE_DELETED:
comments.removeIf(e -> e.getId().equals(body.getCommentId()));
break;
}
return userTaskInstance;
}