diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Orientation.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Orientation.java deleted file mode 100644 index 1696b565..00000000 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Orientation.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; - -public enum Orientation { - - NONE, - LEFT, - RIGHT -} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/ImageServiceResponseAdapter.java similarity index 79% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/ImageServiceResponseAdapter.java index 813c17fb..3e543d23 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/ImageService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/ImageServiceResponseAdapter.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.segmentation; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter; import java.util.ArrayList; import java.util.HashMap; @@ -10,11 +10,11 @@ import org.springframework.stereotype.Service; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; -import com.iqser.red.service.redaction.v1.server.classification.model.Page; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image.ImageServiceResponse; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Page; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image.ClassifiedImage; import com.iqser.red.service.redaction.v1.server.redaction.model.ImageType; -import com.iqser.red.service.redaction.v1.server.redaction.model.PdfImage; import com.iqser.red.service.redaction.v1.server.redaction.model.RedRectangle2D; -import com.iqser.red.service.redaction.v1.server.redaction.model.image.ImageServiceResponse; import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; import lombok.RequiredArgsConstructor; @@ -22,26 +22,26 @@ import lombok.SneakyThrows; @Service @RequiredArgsConstructor -public class ImageService { +public class ImageServiceResponseAdapter { private final ObjectMapper objectMapper; private final RedactionStorageService redactionStorageService; @SneakyThrows - public Map> convertImages(String dossierId, String fileId) { + public Map> convertImages(String dossierId, String fileId) { var imageClassificationStream = redactionStorageService.getStoredObject(RedactionStorageService.StorageIdUtils.getStorageId(dossierId, fileId, FileType.IMAGE_INFO)); ImageServiceResponse imageServiceResponse = objectMapper.readValue(imageClassificationStream, ImageServiceResponse.class); - Map> images = new HashMap<>(); + Map> images = new HashMap<>(); imageServiceResponse.getData().forEach(imageMetadata -> { var classification = imageMetadata.getFilters().isAllPassed() ? ImageType.valueOf(imageMetadata.getClassification() .getLabel() .toUpperCase(Locale.ROOT)) : ImageType.OTHER; images.computeIfAbsent(imageMetadata.getPosition().getPageNumber(), x -> new ArrayList<>()) - .add(new PdfImage(new RedRectangle2D(imageMetadata.getPosition().getX1(), + .add(new ClassifiedImage(new RedRectangle2D(imageMetadata.getPosition().getX1(), imageMetadata.getPosition().getY1(), imageMetadata.getGeometry().getWidth(), imageMetadata.getGeometry().getHeight()), classification, imageMetadata.isAlpha(), imageMetadata.getPosition().getPageNumber())); @@ -53,7 +53,7 @@ public class ImageService { .getLabel() .toUpperCase(Locale.ROOT)) : ImageType.OTHER; images.computeIfAbsent(imageMetadata.getPosition().getPageNumber(), x -> new ArrayList<>()) - .add(new PdfImage(new RedRectangle2D(imageMetadata.getPosition().getX1(), + .add(new ClassifiedImage(new RedRectangle2D(imageMetadata.getPosition().getX1(), imageMetadata.getPosition().getY1(), imageMetadata.getGeometry().getWidth(), imageMetadata.getGeometry().getHeight()), classification, imageMetadata.isAlpha(), imageMetadata.getPosition().getPageNumber())); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/TableService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/TableServiceResponseAdapter.java similarity index 85% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/TableService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/TableServiceResponseAdapter.java index 9cd273e4..a21d1cf4 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/TableService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/TableServiceResponseAdapter.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.segmentation; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter; import java.util.ArrayList; import java.util.Collection; @@ -10,9 +10,9 @@ import org.springframework.stereotype.Service; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.file.FileType; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.table.TableCells; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.table.TableServiceResponse; import com.iqser.red.service.redaction.v1.server.redaction.model.PdfTableCell; -import com.iqser.red.service.redaction.v1.server.redaction.model.table.TableCells; -import com.iqser.red.service.redaction.v1.server.redaction.model.table.TableServiceResponse; import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService; import lombok.RequiredArgsConstructor; @@ -22,7 +22,7 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service @RequiredArgsConstructor -public class TableService { +public class TableServiceResponseAdapter { private final ObjectMapper objectMapper; private final RedactionStorageService redactionStorageService; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Classification.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Classification.java similarity index 68% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Classification.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Classification.java index 3a63e8f5..9de8a10d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Classification.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Classification.java @@ -1,9 +1,8 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; import java.util.HashMap; import java.util.Map; - import lombok.Data; @Data diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/FilterGeometry.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/FilterGeometry.java similarity index 58% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/FilterGeometry.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/FilterGeometry.java index da5221cc..ed8fead8 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/FilterGeometry.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/FilterGeometry.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Filters.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Filters.java similarity index 62% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Filters.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Filters.java index c752528d..ee0e7723 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Filters.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Filters.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Geometry.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Geometry.java similarity index 53% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Geometry.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Geometry.java index 63a09756..ddebcdf8 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Geometry.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Geometry.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageFormat.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageFormat.java similarity index 60% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageFormat.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageFormat.java index 4f638825..7cea1acb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageFormat.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageFormat.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageMetadata.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageMetadata.java similarity index 70% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageMetadata.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageMetadata.java index 0c52b549..1efe46dd 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageMetadata.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageMetadata.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageServiceResponse.java similarity index 86% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageServiceResponse.java index 1cb161ec..8b699e24 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageServiceResponse.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageServiceResponse.java @@ -1,13 +1,13 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; + +import java.util.ArrayList; +import java.util.List; import com.fasterxml.jackson.annotation.JsonAlias; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; -import java.util.ArrayList; -import java.util.List; - @Data public class ImageServiceResponse { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageSize.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageSize.java similarity index 60% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageSize.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageSize.java index 06c04440..226f6ca1 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/ImageSize.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/ImageSize.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Position.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Position.java similarity index 64% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Position.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Position.java index da12f50f..911f5aed 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/image/Position.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Position.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.image; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Probability.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Probability.java new file mode 100644 index 00000000..db286e40 --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/image/Probability.java @@ -0,0 +1,10 @@ +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image; + +import lombok.Data; + +@Data +public class Probability { + + private boolean unconfident; + +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/PageInfo.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/PageInfo.java similarity index 62% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/PageInfo.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/PageInfo.java index 7145f846..f13a5a72 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/PageInfo.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/PageInfo.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.table; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.table; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableCells.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableCells.java similarity index 67% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableCells.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableCells.java index 7a67f0d0..1771b794 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableCells.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableCells.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.table; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.table; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableData.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableData.java similarity index 68% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableData.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableData.java index cff0887c..5426e952 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableData.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableData.java @@ -1,9 +1,8 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.table; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.table; import java.util.ArrayList; import java.util.List; - import lombok.Data; @Data diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableServiceResponse.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableServiceResponse.java similarity index 78% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableServiceResponse.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableServiceResponse.java index 2cb9af4e..2afc4a80 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/table/TableServiceResponse.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/table/TableServiceResponse.java @@ -1,9 +1,8 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model.table; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.table; import java.util.ArrayList; import java.util.List; - import lombok.Data; @Data diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/AbstractTextContainer.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/AbstractPageBlock.java similarity index 79% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/AbstractTextContainer.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/AbstractPageBlock.java index 1234caf8..cf9afe18 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/AbstractTextContainer.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/AbstractPageBlock.java @@ -1,9 +1,8 @@ -package com.iqser.red.service.redaction.v1.server.tableextraction.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model; import com.fasterxml.jackson.annotation.JsonIgnore; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Rectangle; -import com.iqser.red.service.redaction.v1.server.classification.model.Orientation; -import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; import lombok.AllArgsConstructor; import lombok.Data; @@ -12,7 +11,7 @@ import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor -public abstract class AbstractTextContainer { +public abstract class AbstractPageBlock { @JsonIgnore protected float minX; @@ -40,7 +39,7 @@ public abstract class AbstractTextContainer { } - public boolean contains(AbstractTextContainer other) { + public boolean contains(AbstractPageBlock other) { return this.minX <= other.minX && this.maxX >= other.maxX && this.minY >= other.minY && this.maxY <= other.maxY; } @@ -67,7 +66,7 @@ public abstract class AbstractTextContainer { } - public boolean intersectsY(AbstractTextContainer atc) { + public boolean intersectsY(AbstractPageBlock atc) { return this.minY <= atc.getMaxY() && this.maxY >= atc.getMinY(); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Document.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Document.java similarity index 78% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Document.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Document.java index 486a0d1d..d5732004 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Document.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Document.java @@ -1,9 +1,11 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model; import java.util.ArrayList; import java.util.List; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.section.SectionGrid; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.StringFrequencyCounter; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.UnclassifiedText; import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.DictionaryVersion; import lombok.Data; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/FloatFrequencyCounter.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/FloatFrequencyCounter.java similarity index 95% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/FloatFrequencyCounter.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/FloatFrequencyCounter.java index f51792d3..f656a839 100755 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/FloatFrequencyCounter.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/FloatFrequencyCounter.java @@ -1,6 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; - -import lombok.Getter; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model; import java.util.ArrayList; import java.util.Collections; @@ -9,6 +7,8 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import lombok.Getter; + public class FloatFrequencyCounter { @Getter diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Footer.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Footer.java similarity index 74% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Footer.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Footer.java index d428bcfa..38d492a2 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Footer.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Footer.java @@ -1,13 +1,14 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model; + +import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; import com.iqser.red.service.redaction.v1.server.redaction.model.SearchableText; import lombok.AllArgsConstructor; import lombok.Data; -import java.util.List; - @Data @AllArgsConstructor public class Footer { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Header.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Header.java similarity index 74% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Header.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Header.java index 90244010..befd412d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Header.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Header.java @@ -1,13 +1,14 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model; + +import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; import com.iqser.red.service.redaction.v1.server.redaction.model.SearchableText; import lombok.AllArgsConstructor; import lombok.Data; -import java.util.List; - @Data @AllArgsConstructor public class Header { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Orientation.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Orientation.java new file mode 100644 index 00000000..5cd6a10f --- /dev/null +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Orientation.java @@ -0,0 +1,8 @@ +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model; + +public enum Orientation { + + NONE, + LEFT, + RIGHT +} diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Page.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Page.java similarity index 68% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Page.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Page.java index c6754dfc..76fd8f7d 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Page.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Page.java @@ -1,11 +1,11 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model; import java.util.ArrayList; import java.util.List; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Rectangle; -import com.iqser.red.service.redaction.v1.server.redaction.model.PdfImage; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image.ClassifiedImage; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.StringFrequencyCounter; import lombok.Data; import lombok.NonNull; @@ -16,9 +16,9 @@ import lombok.RequiredArgsConstructor; public class Page { @NonNull - private List textBlocks; + private List textBlocks; - private List images = new ArrayList<>(); + private List images = new ArrayList<>(); private Rectangle bodyTextFrame; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Section.java similarity index 70% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Section.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Section.java index 5b373623..3e7028b5 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Section.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/Section.java @@ -1,12 +1,12 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model; import java.util.ArrayList; import java.util.List; -import com.iqser.red.service.redaction.v1.server.redaction.model.PdfImage; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image.ClassifiedImage; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.Table; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; import com.iqser.red.service.redaction.v1.server.redaction.model.SearchableText; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table; import lombok.Data; import lombok.NoArgsConstructor; @@ -15,8 +15,8 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class Section implements Comparable { - private List pageBlocks = new ArrayList<>(); - private List images = new ArrayList<>(); + private List pageBlocks = new ArrayList<>(); + private List images = new ArrayList<>(); private String headline; @@ -61,4 +61,5 @@ public class Section implements Comparable { return 0; } + } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfImage.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/image/ClassifiedImage.java similarity index 54% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfImage.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/image/ClassifiedImage.java index 4ecb3484..36955df1 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/PdfImage.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/image/ClassifiedImage.java @@ -1,4 +1,7 @@ -package com.iqser.red.service.redaction.v1.server.redaction.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image; + +import com.iqser.red.service.redaction.v1.server.redaction.model.ImageType; +import com.iqser.red.service.redaction.v1.server.redaction.model.RedRectangle2D; import lombok.Data; import lombok.NonNull; @@ -6,7 +9,7 @@ import lombok.RequiredArgsConstructor; @Data @RequiredArgsConstructor -public class PdfImage { +public class ClassifiedImage { @NonNull private RedRectangle2D position; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Cell.java similarity index 86% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Cell.java index a4e755fb..96acabbf 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Cell.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Cell.java @@ -1,18 +1,18 @@ -package com.iqser.red.service.redaction.v1.server.tableextraction.model; - -import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; -import com.iqser.red.service.redaction.v1.server.parsing.model.TextPositionSequence; -import com.iqser.red.service.redaction.v1.server.redaction.utils.TextNormalizationUtilities; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table; import java.awt.geom.Point2D; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence; +import com.iqser.red.service.redaction.v1.server.redaction.utils.TextNormalizationUtilities; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + @SuppressWarnings("serial") @Data @EqualsAndHashCode(callSuper = true) diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/CellPosition.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/CellPosition.java similarity index 79% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/CellPosition.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/CellPosition.java index 70a9800c..bec2f274 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/CellPosition.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/CellPosition.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.tableextraction.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table; import lombok.RequiredArgsConstructor; import lombok.Value; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/CleanRulings.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/CleanRulings.java similarity index 65% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/CleanRulings.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/CleanRulings.java index e539f4ba..8e41b20a 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/CleanRulings.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/CleanRulings.java @@ -1,10 +1,10 @@ -package com.iqser.red.service.redaction.v1.server.tableextraction.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table; + +import java.util.List; import lombok.Builder; import lombok.Data; -import java.util.List; - @Data @Builder public class CleanRulings { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Rectangle.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Rectangle.java similarity index 98% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Rectangle.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Rectangle.java index 2862e268..c20f2368 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Rectangle.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Rectangle.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.tableextraction.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Ruling.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Ruling.java similarity index 95% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Ruling.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Ruling.java index 433e64ba..9988b61e 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Ruling.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Ruling.java @@ -1,14 +1,20 @@ -package com.iqser.red.service.redaction.v1.server.tableextraction.model; - -import com.iqser.red.service.redaction.v1.server.tableextraction.utils.CohenSutherlandClipping; -import com.iqser.red.service.redaction.v1.server.tableextraction.utils.Utils; - -import lombok.extern.slf4j.Slf4j; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table; import java.awt.geom.Line2D; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Formatter; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.utils.CohenSutherlandClipping; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.utils.Utils; + +import lombok.extern.slf4j.Slf4j; @Slf4j @SuppressWarnings("all") diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Table.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Table.java similarity index 96% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Table.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Table.java index d5759bf6..55e03d7e 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/model/Table.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/table/Table.java @@ -1,9 +1,8 @@ -package com.iqser.red.service.redaction.v1.server.tableextraction.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table; import java.awt.geom.Point2D; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -12,14 +11,15 @@ import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; -import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; @Slf4j -public class Table extends AbstractTextContainer { +public class Table extends AbstractPageBlock { private final TreeMap cells = new TreeMap<>(); diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/RedTextPosition.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/RedTextPosition.java similarity index 95% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/RedTextPosition.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/RedTextPosition.java index 241900a1..392b1eb0 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/RedTextPosition.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/RedTextPosition.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.parsing.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; import org.apache.pdfbox.text.TextPosition; import org.springframework.beans.BeanUtils; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SectionText.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SectionText.java similarity index 84% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SectionText.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SectionText.java index 82dde03b..fafc436e 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SectionText.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SectionText.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; import java.util.ArrayList; import java.util.HashMap; @@ -7,15 +7,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.dslplatform.json.CompiledJson; -import com.dslplatform.json.JsonAttribute; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - import com.fasterxml.jackson.annotation.JsonIgnore; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.section.SectionArea; import com.iqser.red.service.redaction.v1.server.redaction.model.CellValue; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SimplifiedSectionText.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SimplifiedSectionText.java similarity index 74% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SimplifiedSectionText.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SimplifiedSectionText.java index 58b11aae..5c1ba630 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SimplifiedSectionText.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SimplifiedSectionText.java @@ -1,5 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; - +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SimplifiedText.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SimplifiedText.java similarity index 79% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SimplifiedText.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SimplifiedText.java index 496d64ae..2d4eabf4 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/SimplifiedText.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/SimplifiedText.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; import java.util.ArrayList; import java.util.List; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/StringFrequencyCounter.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/StringFrequencyCounter.java similarity index 93% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/StringFrequencyCounter.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/StringFrequencyCounter.java index 757f6dc3..2186cc25 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/StringFrequencyCounter.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/StringFrequencyCounter.java @@ -1,10 +1,10 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; - -import lombok.Getter; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; import java.util.HashMap; import java.util.Map; +import lombok.Getter; + public class StringFrequencyCounter { @Getter diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Text.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/Text.java similarity index 77% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Text.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/Text.java index ce0f8824..e10e1d14 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/Text.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/Text.java @@ -1,13 +1,12 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; +import java.util.ArrayList; +import java.util.List; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.List; - @Data @NoArgsConstructor @AllArgsConstructor diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/TextBlock.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextBlock.java similarity index 94% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/TextBlock.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextBlock.java index 0a9f62d4..4a6ff3fb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/TextBlock.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextBlock.java @@ -1,13 +1,11 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.iqser.red.service.redaction.v1.server.parsing.model.TextDirection; -import com.iqser.red.service.redaction.v1.server.parsing.model.TextPositionSequence; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock; import com.iqser.red.service.redaction.v1.server.redaction.utils.TextNormalizationUtilities; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; import lombok.AllArgsConstructor; import lombok.Builder; @@ -18,7 +16,7 @@ import lombok.NoArgsConstructor; @Builder @Data @NoArgsConstructor -public class TextBlock extends AbstractTextContainer { +public class TextBlock extends AbstractPageBlock { @Builder.Default private List sequences = new ArrayList<>(); @@ -97,6 +95,7 @@ public class TextBlock extends AbstractTextContainer { } } + /** * Returns the maxX value in pdf coordinate system. * Note: This needs to use Pdf Coordinate System where {0,0} rotated with the page rotation. @@ -177,6 +176,7 @@ public class TextBlock extends AbstractTextContainer { public TextBlock(float minX, float maxX, float minY, float maxY, List sequences, int rotation, int indexOnPage) { + this.indexOnPage = indexOnPage; this.minX = minX; this.maxX = maxX; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextDirection.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextDirection.java similarity index 94% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextDirection.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextDirection.java index 003eca70..8b561759 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextDirection.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextDirection.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.parsing.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; import java.util.Objects; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextPositionSequence.java similarity index 99% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextPositionSequence.java index b1aecb99..48a33a6b 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequence.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/TextPositionSequence.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.parsing.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; import java.awt.geom.AffineTransform; import java.awt.geom.Point2D; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/UnclassifiedText.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/UnclassifiedText.java similarity index 86% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/UnclassifiedText.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/UnclassifiedText.java index ad56370f..36fb8bcb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/model/UnclassifiedText.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/UnclassifiedText.java @@ -1,4 +1,6 @@ -package com.iqser.red.service.redaction.v1.server.classification.model; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text; + +import java.util.List; import com.fasterxml.jackson.annotation.JsonIgnore; import com.iqser.red.service.redaction.v1.server.redaction.model.SearchableText; @@ -6,8 +8,6 @@ import com.iqser.red.service.redaction.v1.server.redaction.model.SearchableText; import lombok.AllArgsConstructor; import lombok.Data; -import java.util.List; - @Data @AllArgsConstructor public class UnclassifiedText { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/LegacyPDFStreamEngine.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/LegacyPDFStreamEngine.java similarity index 99% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/LegacyPDFStreamEngine.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/LegacyPDFStreamEngine.java index bb00562e..5d96ca09 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/LegacyPDFStreamEngine.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/LegacyPDFStreamEngine.java @@ -14,34 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.iqser.red.service.redaction.v1.server.parsing; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.parsing; -import java.io.InputStream; import java.io.IOException; +import java.io.InputStream; import java.util.Map; import java.util.WeakHashMap; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; - import org.apache.fontbox.ttf.TrueTypeFont; import org.apache.fontbox.util.BoundingBox; - import org.apache.pdfbox.contentstream.PDFStreamEngine; -import org.apache.pdfbox.pdmodel.PDPage; -import org.apache.pdfbox.pdmodel.font.encoding.GlyphList; -import org.apache.pdfbox.pdmodel.common.PDRectangle; -import org.apache.pdfbox.pdmodel.font.PDCIDFont; -import org.apache.pdfbox.pdmodel.font.PDCIDFontType2; -import org.apache.pdfbox.pdmodel.font.PDFont; -import org.apache.pdfbox.pdmodel.font.PDSimpleFont; -import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont; -import org.apache.pdfbox.pdmodel.font.PDType0Font; -import org.apache.pdfbox.pdmodel.font.PDType3Font; -import org.apache.pdfbox.pdmodel.graphics.state.PDGraphicsState; -import org.apache.pdfbox.text.TextPosition; -import org.apache.pdfbox.util.Matrix; -import org.apache.pdfbox.util.Vector; import org.apache.pdfbox.contentstream.operator.DrawObject; import org.apache.pdfbox.contentstream.operator.state.Concatenate; import org.apache.pdfbox.contentstream.operator.state.Restore; @@ -50,22 +34,36 @@ import org.apache.pdfbox.contentstream.operator.state.SetGraphicsStateParameters import org.apache.pdfbox.contentstream.operator.state.SetMatrix; import org.apache.pdfbox.contentstream.operator.text.BeginText; import org.apache.pdfbox.contentstream.operator.text.EndText; -import org.apache.pdfbox.contentstream.operator.text.SetFontAndSize; -import org.apache.pdfbox.contentstream.operator.text.SetTextHorizontalScaling; -import org.apache.pdfbox.contentstream.operator.text.ShowTextAdjusted; -import org.apache.pdfbox.contentstream.operator.text.ShowTextLine; -import org.apache.pdfbox.contentstream.operator.text.ShowTextLineAndSpace; import org.apache.pdfbox.contentstream.operator.text.MoveText; import org.apache.pdfbox.contentstream.operator.text.MoveTextSetLeading; import org.apache.pdfbox.contentstream.operator.text.NextLine; import org.apache.pdfbox.contentstream.operator.text.SetCharSpacing; +import org.apache.pdfbox.contentstream.operator.text.SetFontAndSize; +import org.apache.pdfbox.contentstream.operator.text.SetTextHorizontalScaling; import org.apache.pdfbox.contentstream.operator.text.SetTextLeading; import org.apache.pdfbox.contentstream.operator.text.SetTextRenderingMode; import org.apache.pdfbox.contentstream.operator.text.SetTextRise; import org.apache.pdfbox.contentstream.operator.text.SetWordSpacing; import org.apache.pdfbox.contentstream.operator.text.ShowText; +import org.apache.pdfbox.contentstream.operator.text.ShowTextAdjusted; +import org.apache.pdfbox.contentstream.operator.text.ShowTextLine; +import org.apache.pdfbox.contentstream.operator.text.ShowTextLineAndSpace; import org.apache.pdfbox.cos.COSDictionary; +import org.apache.pdfbox.pdmodel.PDPage; +import org.apache.pdfbox.pdmodel.common.PDRectangle; +import org.apache.pdfbox.pdmodel.font.PDCIDFont; +import org.apache.pdfbox.pdmodel.font.PDCIDFontType2; +import org.apache.pdfbox.pdmodel.font.PDFont; import org.apache.pdfbox.pdmodel.font.PDFontDescriptor; +import org.apache.pdfbox.pdmodel.font.PDSimpleFont; +import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont; +import org.apache.pdfbox.pdmodel.font.PDType0Font; +import org.apache.pdfbox.pdmodel.font.PDType3Font; +import org.apache.pdfbox.pdmodel.font.encoding.GlyphList; +import org.apache.pdfbox.pdmodel.graphics.state.PDGraphicsState; +import org.apache.pdfbox.text.TextPosition; +import org.apache.pdfbox.util.Matrix; +import org.apache.pdfbox.util.Vector; /** * LEGACY text calculations which are known to be incorrect but are depended on by PDFTextStripper. diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFAreaTextStripper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFAreaTextStripper.java similarity index 94% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFAreaTextStripper.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFAreaTextStripper.java index dd61063e..22aab9b9 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFAreaTextStripper.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFAreaTextStripper.java @@ -1,17 +1,17 @@ -package com.iqser.red.service.redaction.v1.server.parsing; - -import com.iqser.red.service.redaction.v1.server.parsing.model.TextPositionSequence; - -import lombok.Getter; -import lombok.Setter; - -import org.apache.pdfbox.text.PDFTextStripperByArea; -import org.apache.pdfbox.text.TextPosition; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.parsing; import java.io.IOException; import java.util.ArrayList; import java.util.List; +import org.apache.pdfbox.text.PDFTextStripperByArea; +import org.apache.pdfbox.text.TextPosition; + +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence; + +import lombok.Getter; +import lombok.Setter; + public class PDFAreaTextStripper extends PDFTextStripperByArea { @Getter diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFLinesTextStripper.java similarity index 97% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFLinesTextStripper.java index 2d03f715..fda2c3cb 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFLinesTextStripper.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFLinesTextStripper.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.parsing; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.parsing; import java.awt.geom.Point2D; import java.io.IOException; @@ -34,9 +34,9 @@ import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.text.TextPosition; -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.tableextraction.model.Ruling; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.Ruling; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.RedTextPosition; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence; import lombok.Getter; import lombok.Setter; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFTextStripper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFTextStripper.java similarity index 99% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFTextStripper.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFTextStripper.java index a0eeaaa2..18be3d0e 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/parsing/PDFTextStripper.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/parsing/PDFTextStripper.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.iqser.red.service.redaction.v1.server.parsing; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.parsing; import java.io.BufferedInputStream; import java.io.IOException; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/BlockificationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/BlockificationService.java similarity index 90% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/BlockificationService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/BlockificationService.java index 9f6ec4f1..75328630 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/BlockificationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/BlockificationService.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.classification.service; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service; import static java.util.stream.Collectors.toSet; @@ -9,15 +9,15 @@ import java.util.List; import org.springframework.stereotype.Service; -import com.iqser.red.service.redaction.v1.server.classification.model.FloatFrequencyCounter; -import com.iqser.red.service.redaction.v1.server.classification.model.Orientation; -import com.iqser.red.service.redaction.v1.server.classification.model.Page; -import com.iqser.red.service.redaction.v1.server.classification.model.StringFrequencyCounter; -import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; -import com.iqser.red.service.redaction.v1.server.classification.utils.RulingTextDirAdjustUtil; -import com.iqser.red.service.redaction.v1.server.parsing.model.TextPositionSequence; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.Ruling; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.FloatFrequencyCounter; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Orientation; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Page; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.Ruling; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.StringFrequencyCounter; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.utils.RulingTextDirAdjustUtil; @Service @SuppressWarnings("all") @@ -40,7 +40,7 @@ public class BlockificationService { int indexOnPage = 0; List chunkWords = new ArrayList<>(); - List chunkBlockList1 = new ArrayList<>(); + List chunkBlockList1 = new ArrayList<>(); float minX = 1000, maxX = 0, minY = 1000, maxY = 0; TextPositionSequence prev = null; @@ -111,7 +111,7 @@ public class BlockificationService { chunkBlockList1.add(cb1); } - Iterator itty = chunkBlockList1.iterator(); + Iterator itty = chunkBlockList1.iterator(); TextBlock previousLeft = null; TextBlock previousRight = null; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/BodyTextFrameService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/BodyTextFrameService.java similarity index 88% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/BodyTextFrameService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/BodyTextFrameService.java index a8874081..30bd9ac5 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/BodyTextFrameService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/BodyTextFrameService.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.classification.service; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service; import java.util.List; @@ -6,13 +6,13 @@ import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Point; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Rectangle; -import com.iqser.red.service.redaction.v1.server.classification.model.FloatFrequencyCounter; -import com.iqser.red.service.redaction.v1.server.classification.model.Page; -import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; -import com.iqser.red.service.redaction.v1.server.classification.utils.PositionUtils; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.Cell; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.FloatFrequencyCounter; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Page; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.Cell; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.Table; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.utils.PositionUtils; @Service public class BodyTextFrameService { @@ -75,7 +75,7 @@ public class BodyTextFrameService { continue; } - for (AbstractTextContainer container : page.getTextBlocks()) { + for (AbstractPageBlock container : page.getTextBlocks()) { if (container instanceof TextBlock) { TextBlock textBlock = (TextBlock) container; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/ClassificationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/ClassificationService.java similarity index 90% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/ClassificationService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/ClassificationService.java index c5247fda..8764ec39 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/classification/service/ClassificationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/ClassificationService.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.classification.service; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service; import java.util.List; import java.util.regex.Pattern; @@ -6,11 +6,11 @@ import java.util.regex.Pattern; import org.springframework.stereotype.Service; import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Rectangle; -import com.iqser.red.service.redaction.v1.server.classification.model.Document; -import com.iqser.red.service.redaction.v1.server.classification.model.Page; -import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; -import com.iqser.red.service.redaction.v1.server.classification.utils.PositionUtils; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Document; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Page; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.utils.PositionUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -40,7 +40,7 @@ public class ClassificationService { public void classifyPage(Page page, Document document, List headlineFontSizes) { - for (AbstractTextContainer textBlock : page.getTextBlocks()) { + for (AbstractPageBlock textBlock : page.getTextBlocks()) { if (textBlock instanceof TextBlock) { classifyBlock((TextBlock) textBlock, page, document, headlineFontSizes); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/PdfSegmentationService.java similarity index 73% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/PdfSegmentationService.java index 8223b17f..2375ce27 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/PdfSegmentationService.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.segmentation; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service; import java.io.File; import java.io.FileOutputStream; @@ -16,21 +16,19 @@ import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.springframework.stereotype.Service; -import com.iqser.red.service.redaction.v1.server.classification.model.Document; -import com.iqser.red.service.redaction.v1.server.classification.model.Page; -import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; -import com.iqser.red.service.redaction.v1.server.classification.service.BlockificationService; -import com.iqser.red.service.redaction.v1.server.classification.service.ClassificationService; -import com.iqser.red.service.redaction.v1.server.parsing.PDFLinesTextStripper; -import com.iqser.red.service.redaction.v1.server.parsing.model.TextPositionSequence; -import com.iqser.red.service.redaction.v1.server.redaction.model.PdfImage; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.ImageServiceResponseAdapter; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.TableServiceResponseAdapter; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Document; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Page; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image.ClassifiedImage; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.CleanRulings; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.parsing.PDFLinesTextStripper; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.utils.FileUtils; import com.iqser.red.service.redaction.v1.server.redaction.model.PdfTableCell; import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.CleanRulings; -import com.iqser.red.service.redaction.v1.server.tableextraction.service.RulingCleaningService; -import com.iqser.red.service.redaction.v1.server.tableextraction.service.TableExtractionService; -import com.iqser.red.service.redaction.v1.server.tableextraction.utils.FileUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -46,18 +44,18 @@ public class PdfSegmentationService { private final BlockificationService blockificationService; private final ClassificationService classificationService; private final SectionsBuilderService sectionsBuilderService; - private final ImageService imageService; - private final TableService tableService; + private final ImageServiceResponseAdapter imageServiceResponseAdapter; + private final TableServiceResponseAdapter tableServiceResponseAdapter; - public Document parseDocument(String dossierId, String fileId, InputStream documentInputStream, Map> pdfImages) throws IOException { + public Document parseDocument(String dossierId, String fileId, InputStream documentInputStream, Map> pdfImages) throws IOException { PDDocument pdDocument = null; File tempFile = null; try { Map> pdfTableCells = new HashMap<>(); if (redactionServiceSettings.isCvTableParsingEnabled()) { - pdfTableCells = tableService.convertTables(dossierId, fileId); + pdfTableCells = tableServiceResponseAdapter.convertTables(dossierId, fileId); } tempFile = FileUtils.createTempFile("document", ".pdf"); @@ -94,12 +92,12 @@ public class PdfSegmentationService { } - private void processPage(Map> pdfImages, - PDDocument pdDocument, - Map> pdfTableCells, - Document document, - List pages, - int pageNumber) throws IOException { + private void processPage(Map> pdfImages, + PDDocument pdDocument, + Map> pdfTableCells, + Document document, + List pages, + int pageNumber) throws IOException { PDFLinesTextStripper stripper = new PDFLinesTextStripper(); PDPage pdPage = pdDocument.getPage(pageNumber - 1); @@ -130,7 +128,7 @@ public class PdfSegmentationService { // If images is ocr needs to be calculated before textBlocks are moved into tables, otherwise findOcr algorithm needs to be adopted. if (pdfImages != null && pdfImages.containsKey(pageNumber)) { page.setImages(pdfImages.get(pageNumber)); - imageService.findOcr(page); + imageServiceResponseAdapter.findOcr(page); } tableExtractionService.extractTables(cleanRulings, page); @@ -155,7 +153,7 @@ public class PdfSegmentationService { private void buildPageStatistics(Page page) { // Collect all statistics for the page, except from blocks inside tables, as tables will always be added to BodyTextFrame. - for (AbstractTextContainer textBlock : page.getTextBlocks()) { + for (AbstractPageBlock textBlock : page.getTextBlocks()) { if (textBlock instanceof TextBlock) { if (((TextBlock) textBlock).getSequences() == null) { continue; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/RulingCleaningService.java similarity index 95% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/RulingCleaningService.java index dcc9c498..4cdcaa75 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/tableextraction/service/RulingCleaningService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/RulingCleaningService.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.tableextraction.service; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service; import java.awt.geom.Line2D; import java.awt.geom.Point2D; @@ -12,11 +12,11 @@ import java.util.Map; import org.springframework.stereotype.Service; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.CleanRulings; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.Ruling; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.utils.Utils; import com.iqser.red.service.redaction.v1.server.redaction.model.PdfTableCell; import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.CleanRulings; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.Ruling; -import com.iqser.red.service.redaction.v1.server.tableextraction.utils.Utils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/SectionsBuilderService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/SectionsBuilderService.java similarity index 86% rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/SectionsBuilderService.java rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/SectionsBuilderService.java index 58e7bab1..d3058889 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/segmentation/SectionsBuilderService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/SectionsBuilderService.java @@ -1,4 +1,4 @@ -package com.iqser.red.service.redaction.v1.server.segmentation; +package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service; import java.util.ArrayList; import java.util.Collections; @@ -10,17 +10,17 @@ import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; -import com.iqser.red.service.redaction.v1.server.classification.model.Document; -import com.iqser.red.service.redaction.v1.server.classification.model.Footer; -import com.iqser.red.service.redaction.v1.server.classification.model.Header; -import com.iqser.red.service.redaction.v1.server.classification.model.Page; -import com.iqser.red.service.redaction.v1.server.classification.model.Section; -import com.iqser.red.service.redaction.v1.server.classification.model.TextBlock; -import com.iqser.red.service.redaction.v1.server.classification.model.UnclassifiedText; -import com.iqser.red.service.redaction.v1.server.redaction.model.PdfImage; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.AbstractTextContainer; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.Cell; -import com.iqser.red.service.redaction.v1.server.tableextraction.model.Table; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Document; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Footer; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Header; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Page; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.Section; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image.ClassifiedImage; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.Cell; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.table.Table; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextBlock; +import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.UnclassifiedText; import lombok.extern.slf4j.Slf4j; @@ -30,13 +30,13 @@ public class SectionsBuilderService { public void buildSections(Document document) { - List chunkWords = new ArrayList<>(); + List chunkWords = new ArrayList<>(); List
chunkBlockList = new ArrayList<>(); List
headers = new ArrayList<>(); List