diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/TextEntity.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/TextEntity.java index af4a4ac2..a0880c90 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/TextEntity.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/model/document/entity/TextEntity.java @@ -182,19 +182,25 @@ public class TextEntity implements IEntity { public boolean containedBy(TextEntity textEntity) { - return this.textRange.containedBy(textEntity.getTextRange()); + return this.textRange.containedBy(textEntity.getTextRange()) + || duplicateTextRanges.stream().anyMatch(duplicateTextRange -> duplicateTextRange.containedBy(textEntity.textRange)) + || duplicateTextRanges.stream().anyMatch(duplicateTextRange -> textEntity.getDuplicateTextRanges().stream().anyMatch(duplicateTextRange::containedBy)); } public boolean contains(TextEntity textEntity) { - return this.textRange.contains(textEntity.getTextRange()); + return this.textRange.contains(textEntity.getTextRange()) + || duplicateTextRanges.stream().anyMatch(duplicateTextRange -> duplicateTextRange.contains(textEntity.textRange)) + || duplicateTextRanges.stream().anyMatch(duplicateTextRange -> textEntity.getDuplicateTextRanges().stream().anyMatch(duplicateTextRange::contains)); } public boolean intersects(TextEntity textEntity) { - return this.textRange.intersects(textEntity.getTextRange()); + return this.textRange.intersects(textEntity.getTextRange()) + || duplicateTextRanges.stream().anyMatch(duplicateTextRange -> duplicateTextRange.intersects(textEntity.textRange)) + || duplicateTextRanges.stream().anyMatch(duplicateTextRange -> textEntity.getDuplicateTextRanges().stream().anyMatch(duplicateTextRange::intersects)); }