From 64c54e73fb3bb5bb12e151b9522357045ae29d00 Mon Sep 17 00:00:00 2001 From: deiflaender Date: Mon, 27 Feb 2023 12:23:36 +0100 Subject: [PATCH] RED-6093: Prototype document structurewip dependency upgrade --- .../document/graph/AtomicTextBlockEntity.java | 9 +++++---- .../v1/server/document/graph/TextBlockEntity.java | 8 +++++--- .../model/SearchTextWithTextPositionModel.java | 3 +-- .../service/SearchTextWithTextPositionFactory.java | 5 +++-- .../v1/server/AbstractTestWithDictionaries.java | 14 +++++++------- .../v1/server/DocumentGraphIntegrationTest.java | 2 +- 6 files changed, 22 insertions(+), 19 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/AtomicTextBlockEntity.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/AtomicTextBlockEntity.java index 18c6fbb8..b3f33664 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/AtomicTextBlockEntity.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/AtomicTextBlockEntity.java @@ -1,8 +1,9 @@ package com.iqser.red.service.redaction.v1.server.document.graph; -import java.awt.geom.Rectangle2D; import java.util.List; +import com.iqser.red.service.redaction.v1.server.redaction.model.RedRectangle2D; + import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Builder; @@ -23,7 +24,7 @@ public class AtomicTextBlockEntity implements CharSequence { //position coords List stringIdxToPositionIdx; - List positions; + List positions; Node parent; @@ -50,13 +51,13 @@ public class AtomicTextBlockEntity implements CharSequence { } - public Rectangle2D getPosition(int stringIdx) { + public RedRectangle2D getPosition(int stringIdx) { return positions.get(stringIdxToPositionIdx.get(stringIdx - offset)); } - public List getPositions(int startStringIdx, int endStringIdx) { + public List getPositions(int startStringIdx, int endStringIdx) { return positions.subList(startStringIdx - offset, endStringIdx - offset); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/TextBlockEntity.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/TextBlockEntity.java index 27086b1c..02f482e4 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/TextBlockEntity.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/TextBlockEntity.java @@ -5,6 +5,8 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Supplier; +import com.iqser.red.service.redaction.v1.server.redaction.model.RedRectangle2D; + import lombok.AccessLevel; import lombok.Data; import lombok.experimental.FieldDefaults; @@ -83,13 +85,13 @@ public class TextBlockEntity implements CharSequence, Supplier } - public Rectangle2D getPositions(int stringIdx) { + public RedRectangle2D getPositions(int stringIdx) { return getAtomicTextBlockByStringIndex(stringIdx).getPosition(stringIdx); } - public List getPositions(int startStringIdx, int endStringIdx) { + public List getPositions(int startStringIdx, int endStringIdx) { List textBlocks = getAllAtomicTextBlocksPartiallyInStringIdxRange(startStringIdx, endStringIdx); @@ -98,7 +100,7 @@ public class TextBlockEntity implements CharSequence, Supplier } var firstTextBlock = textBlocks.get(0); - List positions = new LinkedList<>(firstTextBlock.getPositions(startStringIdx, firstTextBlock.getOffset() + firstTextBlock.length())); + List positions = new LinkedList<>(firstTextBlock.getPositions(startStringIdx, firstTextBlock.getOffset() + firstTextBlock.length())); for (var textBlock : textBlocks.subList(1, textBlocks.size() - 1)) { positions.addAll(textBlock.getPositions()); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchTextWithTextPositionModel.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchTextWithTextPositionModel.java index 452166b6..1e4a26a3 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchTextWithTextPositionModel.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/SearchTextWithTextPositionModel.java @@ -1,6 +1,5 @@ package com.iqser.red.service.redaction.v1.server.redaction.model; -import java.awt.geom.Rectangle2D; import java.util.List; import lombok.AccessLevel; @@ -16,5 +15,5 @@ public class SearchTextWithTextPositionModel { String searchText; List lineBreaks; List stringCoordsToPositionCoords; - List positions; + List positions; } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SearchTextWithTextPositionFactory.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SearchTextWithTextPositionFactory.java index 86b59bc5..d567f293 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SearchTextWithTextPositionFactory.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SearchTextWithTextPositionFactory.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.redaction.v1.server.parsing.model.RedTextPosition; import com.iqser.red.service.redaction.v1.server.parsing.model.TextPositionSequence; +import com.iqser.red.service.redaction.v1.server.redaction.model.RedRectangle2D; import com.iqser.red.service.redaction.v1.server.redaction.model.SearchTextWithTextPositionModel; @Service @@ -53,11 +54,11 @@ public class SearchTextWithTextPositionFactory { assert sb.length() == stringIdxToPositionIdx.size(); - List positions = sequences.stream()// + List positions = sequences.stream()// .map(TextPositionSequence::getTextPositions)// .flatMap(List::stream)// .map(RedTextPosition::getPosition)// - .map(a -> (Rectangle2D) new Rectangle2D.Float(a[0], a[1], a[2], a[3])) + .map(a -> (RedRectangle2D) new RedRectangle2D(a[0], a[1], a[2], a[3])) .toList(); return SearchTextWithTextPositionModel.builder() diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractTestWithDictionaries.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractTestWithDictionaries.java index fb9b6cc9..afbcb225 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractTestWithDictionaries.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractTestWithDictionaries.java @@ -20,9 +20,9 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import org.junit.After; -import org.junit.Before; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.extension.ExtendWith; import org.kie.api.KieServices; import org.kie.api.builder.KieBuilder; import org.kie.api.builder.KieFileSystem; @@ -39,7 +39,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Primary; import org.springframework.core.io.ClassPathResource; -import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive; import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.configuration.Colors; @@ -57,7 +57,7 @@ import com.iqser.red.storage.commons.service.StorageService; import lombok.SneakyThrows; -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @Import(AbstractTestWithDictionaries.TestConfiguration.class) public class AbstractTestWithDictionaries { @@ -111,7 +111,7 @@ public class AbstractTestWithDictionaries { private final Set deleted = new HashSet<>(); - @Before + @BeforeEach public void stubClients() { when(rulesClient.getVersion(TEST_DOSSIER_TEMPLATE_ID)).thenReturn(0L); @@ -480,7 +480,7 @@ public class AbstractTestWithDictionaries { } - @After + @AfterEach public void cleanupStorage() { if (this.storageService instanceof FileSystemBackedStorageService) { diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/DocumentGraphIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/DocumentGraphIntegrationTest.java index 2db1dce0..6e83951b 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/DocumentGraphIntegrationTest.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/DocumentGraphIntegrationTest.java @@ -2,7 +2,7 @@ package com.iqser.red.service.redaction.v1.server; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.io.ClassPathResource;