diff --git a/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/TextEntity.java b/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/TextEntity.java index db876644..83a0baa9 100644 --- a/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/TextEntity.java +++ b/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/TextEntity.java @@ -47,7 +47,7 @@ public class TextEntity implements IEntity { TextRange textRange; @Builder.Default - List duplicateTextRanges = new ArrayList<>(); + Set duplicateTextRanges = new HashSet<>(); String type; // TODO: make final once ManualChangesApplicationService::recategorize is deleted final EntityType entityType; @@ -215,22 +215,20 @@ public class TextEntity implements IEntity { return textEntity.contains(this); } - public boolean contains(TextEntity textEntity) { if (this.textRange.contains(textEntity.getTextRange())) { return true; } - List textEntityDuplicateRanges = textEntity.getDuplicateTextRanges(); - // use optimized indexed loops for extra performance boost - for (int i = 0, duplicateTextRangesSize = duplicateTextRanges.size(); i < duplicateTextRangesSize; i++) { - TextRange duplicateTextRange = duplicateTextRanges.get(i); + Set textEntityDuplicateRanges = textEntity.getDuplicateTextRanges(); + + for (TextRange duplicateTextRange : this.duplicateTextRanges) { if (duplicateTextRange.contains(textEntity.getTextRange())) { return true; } - for (int j = 0, textEntityDuplicateRangesSize = textEntityDuplicateRanges.size(); j < textEntityDuplicateRangesSize; j++) { - TextRange otherRange = textEntityDuplicateRanges.get(j); + + for (TextRange otherRange : textEntityDuplicateRanges) { if (duplicateTextRange.contains(otherRange)) { return true; } @@ -241,6 +239,7 @@ public class TextEntity implements IEntity { } + public boolean intersects(TextEntity textEntity) { return this.textRange.intersects(textEntity.getTextRange()) // diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/ManualChangesApplicationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/ManualChangesApplicationService.java index 7b9b3332..1c81a126 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/ManualChangesApplicationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/ManualChangesApplicationService.java @@ -155,7 +155,7 @@ public class ManualChangesApplicationService { entityToBeResized.setTextRange(closestEntity.getTextRange()); entityToBeResized.setTextAfter(closestEntity.getTextAfter()); entityToBeResized.setTextBefore(closestEntity.getTextBefore()); - entityToBeResized.setDuplicateTextRanges(new ArrayList<>(closestEntity.getDuplicateTextRanges())); + entityToBeResized.setDuplicateTextRanges(new HashSet<>(closestEntity.getDuplicateTextRanges())); entityToBeResized.setValue(closestEntity.getValue()); entityToBeResized.setPages(newIntersectingPages); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFromPrecursorCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFromPrecursorCreationService.java index d2d03c70..af539529 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFromPrecursorCreationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityFromPrecursorCreationService.java @@ -140,7 +140,7 @@ public class EntityFromPrecursorCreationService { } correctEntity.setDeepestFullyContainingNode(closestEntity.getDeepestFullyContainingNode()); correctEntity.setIntersectingNodes(new ArrayList<>(closestEntity.getIntersectingNodes())); - correctEntity.setDuplicateTextRanges(new ArrayList<>(closestEntity.getDuplicateTextRanges())); + correctEntity.setDuplicateTextRanges(new HashSet<>(closestEntity.getDuplicateTextRanges())); correctEntity.setPages(new HashSet<>(closestEntity.getPages())); correctEntity.setValue(closestEntity.getValue()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/DocumineFloraTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/DocumineFloraTest.java index 2f5d5a56..430ab672 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/DocumineFloraTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/DocumineFloraTest.java @@ -261,7 +261,6 @@ public class DocumineFloraTest extends AbstractRedactionIntegrationTest { } - @Disabled @Test public void testDoseMortalityExtraction() {