RED-7708 - Remove duplicate entries in redaction log entry list #153
@ -5,6 +5,9 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -229,6 +232,8 @@ public class AnalyzeService {
|
||||
notFoundManualRedactionEntries,
|
||||
getComments(analyzeRequest));
|
||||
|
||||
newRedactionLogEntries = newRedactionLogEntries.stream().filter(distinctByKey(RedactionLogEntry::getId)).collect(Collectors.toList());
|
||||
|
||||
var importedRedactionFilteredEntries = importedRedactionService.processImportedRedactions(analyzeRequest.getDossierTemplateId(),
|
||||
analyzeRequest.getDossierId(),
|
||||
analyzeRequest.getFileId(),
|
||||
@ -382,6 +387,8 @@ public class AnalyzeService {
|
||||
notFoundManualRedactionEntries,
|
||||
getComments(analyzeRequest));
|
||||
|
||||
redactionLogEntries = redactionLogEntries.stream().filter(distinctByKey(RedactionLogEntry::getId)).collect(Collectors.toList());
|
||||
|
||||
List<LegalBasis> legalBasis = legalBasisClient.getLegalBasisMapping(analyzeRequest.getDossierTemplateId());
|
||||
RedactionLog redactionLog = new RedactionLog(redactionServiceSettings.getAnalysisVersion(),
|
||||
analyzeRequest.getAnalysisNumber(),
|
||||
@ -401,6 +408,12 @@ public class AnalyzeService {
|
||||
return redactionLog;
|
||||
}
|
||||
|
||||
private <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
|
||||
|
||||
Set<Object> seen = ConcurrentHashMap.newKeySet();
|
||||
return t -> seen.add(keyExtractor.apply(t));
|
||||
}
|
||||
|
||||
|
||||
private static Map<String, List<Comment>> getComments(AnalyzeRequest analyzeRequest) {
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user