From ecdfd29803e09ac57cc74b19408db54d9a8247a7 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Thu, 1 Oct 2020 12:43:07 +0200 Subject: [PATCH] RED-372: Suffix cross page annotations with -1, -2, etc., to avoid duplicate annotation ids --- .../v1/server/redaction/model/SearchableText.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchableText.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchableText.java index 8652bf57..4313cb17 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchableText.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchableText.java @@ -136,9 +136,11 @@ public class SearchableText { private List buildEntityPositionSequence(List crossSequenceParts) { - String id = IdBuilder.buildId(crossSequenceParts); + String plainId = IdBuilder.buildId(crossSequenceParts); + String id = plainId; List result = new ArrayList<>(); int currentPage = -1; + int idDiffentPageSuffix = 1; EntityPositionSequence entityPositionSequence = new EntityPositionSequence(id); for (TextPositionSequence textPositionSequence : crossSequenceParts) { if (currentPage == -1) { @@ -148,9 +150,13 @@ public class SearchableText { } else if (currentPage == textPositionSequence.getPage()) { entityPositionSequence.getSequences().add(textPositionSequence); } else { + id = plainId + "-" + idDiffentPageSuffix; + idDiffentPageSuffix++; result.add(entityPositionSequence); entityPositionSequence = new EntityPositionSequence(id); entityPositionSequence.setPageNumber(textPositionSequence.getPage()); + entityPositionSequence.getSequences().add(textPositionSequence); + currentPage = textPositionSequence.getPage(); } } result.add(entityPositionSequence);