diff --git a/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/utils/EntityCreationUtility.java b/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/utils/EntityCreationUtility.java index 2e0afd66..3bdee504 100644 --- a/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/utils/EntityCreationUtility.java +++ b/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/utils/EntityCreationUtility.java @@ -10,18 +10,18 @@ import com.iqser.red.service.redaction.v1.server.model.document.nodes.Page; import com.iqser.red.service.redaction.v1.server.model.document.nodes.SemanticNode; import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; -import lombok.experimental.UtilityClass; +public final class EntityCreationUtility { -@UtilityClass -public class EntityCreationUtility { + private EntityCreationUtility() {throw new UnsupportedOperationException("This is a utility class and cannot be instantiated");} - public void checkIfBothStartAndEndAreEmpty(String start, String end) { + + public static void checkIfBothStartAndEndAreEmpty(String start, String end) { checkIfBothStartAndEndAreEmpty(List.of(start), List.of(end)); } - public void checkIfBothStartAndEndAreEmpty(List start, List end) { + public static void checkIfBothStartAndEndAreEmpty(List start, List end) { if ((start == null || start.isEmpty()) && (end == null || end.isEmpty())) { throw new IllegalArgumentException("Start and end values are empty!"); @@ -29,7 +29,7 @@ public class EntityCreationUtility { } - public int truncateEndIfLineBreakIsBetween(int end, int expandedEnd, TextBlock textBlock) { + public static int truncateEndIfLineBreakIsBetween(int end, int expandedEnd, TextBlock textBlock) { if (textBlock.getNextLinebreak(end) < expandedEnd) { return end; @@ -38,7 +38,7 @@ public class EntityCreationUtility { } - public Set findIntersectingSubNodes(SemanticNode initialIntersectingNode, TextRange textRange) { + public static Set findIntersectingSubNodes(SemanticNode initialIntersectingNode, TextRange textRange) { IntersectingNodeVisitor visitor = new IntersectingNodeVisitor(textRange); @@ -50,7 +50,7 @@ public class EntityCreationUtility { } - public void addToPages(TextEntity entity) { + public static void addToPages(TextEntity entity) { Set pages = entity.getDeepestFullyContainingNode().getPages(entity.getTextRange()); entity.getPages().addAll(pages); @@ -58,14 +58,14 @@ public class EntityCreationUtility { } - public void addEntityToNodeEntitySets(TextEntity entity) { + public static void addEntityToNodeEntitySets(TextEntity entity) { entity.getIntersectingNodes() .forEach(node -> node.getEntities().add(entity)); } - public boolean allEntitiesIntersectAndHaveSameTypes(List entitiesToMerge) { + public static boolean allEntitiesIntersectAndHaveSameTypes(List entitiesToMerge) { if (entitiesToMerge.isEmpty()) { return true; @@ -83,7 +83,7 @@ public class EntityCreationUtility { } - public TextRange toLineAfterTextRange(TextBlock textBlock, TextRange textRange) { + public static TextRange toLineAfterTextRange(TextBlock textBlock, TextRange textRange) { if (textBlock.getTextRange().end() == textRange.end()) { return new TextRange(textRange.end(), textRange.end()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationService.java index 14cfc0af..093b67cf 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationService.java @@ -1,10 +1,6 @@ package com.iqser.red.service.redaction.v1.server.service.document; -import static com.iqser.red.service.redaction.v1.server.service.document.EntityCreationUtility.allEntitiesIntersectAndHaveSameTypes; -import static com.iqser.red.service.redaction.v1.server.service.document.EntityCreationUtility.checkIfBothStartAndEndAreEmpty; -import static com.iqser.red.service.redaction.v1.server.service.document.EntityCreationUtility.findIntersectingSubNodes; -import static com.iqser.red.service.redaction.v1.server.service.document.EntityCreationUtility.toLineAfterTextRange; -import static com.iqser.red.service.redaction.v1.server.service.document.EntityCreationUtility.truncateEndIfLineBreakIsBetween; +import static com.iqser.red.service.redaction.v1.server.utils.EntityCreationUtility.*; import static com.iqser.red.service.redaction.v1.server.utils.SeparatorUtils.boundaryIsSurroundedBySeparators; import java.util.Arrays; @@ -47,7 +43,7 @@ import lombok.extern.slf4j.Slf4j; @NoArgsConstructor public class EntityCreationService { - KieSessionUpdater kieSessionUpdater = null; + KieSessionUpdater kieSessionUpdater; public EntityCreationService(KieSessionUpdater kieSessionUpdater) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationUtility.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationUtility.java deleted file mode 100644 index a6102e4d..00000000 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/service/document/EntityCreationUtility.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.iqser.red.service.redaction.v1.server.service.document; - -import java.util.List; -import java.util.Set; - -import com.iqser.red.service.redaction.v1.server.model.document.TextRange; -import com.iqser.red.service.redaction.v1.server.model.document.entity.TextEntity; -import com.iqser.red.service.redaction.v1.server.model.document.nodes.Page; -import com.iqser.red.service.redaction.v1.server.model.document.nodes.SemanticNode; -import com.iqser.red.service.redaction.v1.server.model.document.textblock.TextBlock; - -import lombok.experimental.UtilityClass; - -@UtilityClass -public class EntityCreationUtility { - - public void checkIfBothStartAndEndAreEmpty(String start, String end) { - - checkIfBothStartAndEndAreEmpty(List.of(start), List.of(end)); - } - - - public void checkIfBothStartAndEndAreEmpty(List start, List end) { - - if ((start == null || start.isEmpty()) && (end == null || end.isEmpty())) { - throw new IllegalArgumentException("Start and end values are empty!"); - } - } - - - public int truncateEndIfLineBreakIsBetween(int end, int expandedEnd, TextBlock textBlock) { - - if (textBlock.getNextLinebreak(end) < expandedEnd) { - return end; - } - return expandedEnd; - } - - - public Set findIntersectingSubNodes(SemanticNode initialIntersectingNode, TextRange textRange) { - - IntersectingNodeVisitor visitor = new IntersectingNodeVisitor(textRange); - - if (initialIntersectingNode.getTextRange().intersects(textRange)) { - initialIntersectingNode.accept(visitor); - } - - return visitor.getIntersectingNodes(); - } - - - public void addToPages(TextEntity entity) { - - Set pages = entity.getDeepestFullyContainingNode().getPages(entity.getTextRange()); - entity.getPages().addAll(pages); - pages.forEach(page -> page.getEntities().add(entity)); - } - - - public void addEntityToNodeEntitySets(TextEntity entity) { - - entity.getIntersectingNodes() - .forEach(node -> node.getEntities().add(entity)); - } - - - public boolean allEntitiesIntersectAndHaveSameTypes(List entitiesToMerge) { - - if (entitiesToMerge.isEmpty()) { - return true; - } - TextEntity previousEntity = entitiesToMerge.get(0); - for (TextEntity textEntity : entitiesToMerge.subList(1, entitiesToMerge.size())) { - boolean typeMatches = textEntity.type().equals(previousEntity.type()); - boolean entityTypeMatches = textEntity.getEntityType().equals(previousEntity.getEntityType()); - boolean intersects = textEntity.intersects(previousEntity); - if (!typeMatches || !entityTypeMatches || !intersects) { - return false; - } - } - return true; - } - - - public TextRange toLineAfterTextRange(TextBlock textBlock, TextRange textRange) { - - if (textBlock.getTextRange().end() == textRange.end()) { - return new TextRange(textRange.end(), textRange.end()); - } - - return new TextRange(textRange.end(), textBlock.getNextLinebreak(textRange.end())).trim(textBlock); - } - -}