From 33ec43e15e37c6d911e281682ee228645970d0a0 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Mon, 31 Jul 2023 16:45:09 +0200 Subject: [PATCH] * import properties from layoutparser * add logging-commons --- .../build.gradle.kts | 14 ++-- .../data/mapper/PropertiesMapper.java | 84 +++---------------- 2 files changed, 20 insertions(+), 78 deletions(-) diff --git a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts index f8c12bb5..1a5ac3db 100644 --- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts @@ -11,18 +11,17 @@ plugins { description = "redaction-service-server-v1" -extra["layoutparserVersion"] = "0.8.0" - dependencies { implementation(project(":redaction-service-api-v1")) - implementation("com.iqser.red.service:persistence-service-internal-api-v1:RED-6725") - implementation("com.knecon.fforesight:layoutparser-service-internal-api:0.16.0") + implementation("com.iqser.red.service:persistence-service-internal-api-v1:RED-6725-3") + implementation("com.knecon.fforesight:layoutparser-service-internal-api:0.17.0") implementation("com.iqser.red.commons:spring-commons:2.1.0") { exclude(group = "org.springframework.boot", module = "spring-boot-starter-log4j2") } implementation("com.iqser.red.commons:metric-commons:2.1.0") { exclude(group = "org.springframework.boot", module = "spring-boot-starter-log4j2") } implementation("com.iqser.red.commons:dictionary-merge-commons:1.3.0") implementation("com.iqser.red.commons:storage-commons:2.1.0") + implementation("com.iqser.red.commons:logging-commons:2.3.0") implementation("com.knecon.fforesight:tenant-commons:0.10.0") implementation("org.springframework.boot:spring-boot-starter-aop:3.0.4") @@ -37,13 +36,14 @@ dependencies { implementation("org.locationtech.jts:jts-core:1.19.0") + implementation("org.springframework.cloud:spring-cloud-starter-openfeign:4.0.1") + implementation("org.springframework.boot:spring-boot-starter-amqp:3.0.4") + testImplementation("org.apache.pdfbox:pdfbox:3.0.0-alpha2") testImplementation("org.apache.pdfbox:pdfbox-tools:3.0.0-alpha2") - implementation("org.springframework.cloud:spring-cloud-starter-openfeign:4.0.1") - implementation("org.springframework.boot:spring-boot-starter-amqp:3.0.4") testImplementation("org.springframework.boot:spring-boot-starter-test:3.0.4") - testImplementation("com.knecon.fforesight:layoutparser-service-processor:0.16.0") { exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1") } + testImplementation("com.knecon.fforesight:layoutparser-service-processor:0.17.0") { exclude(group = "com.iqser.red.service", module = "persistence-service-shared-api-v1") } } tasks.test { diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/mapper/PropertiesMapper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/mapper/PropertiesMapper.java index 3277183c..d6b0fa31 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/mapper/PropertiesMapper.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/mapper/PropertiesMapper.java @@ -1,109 +1,51 @@ package com.iqser.red.service.redaction.v1.server.document.data.mapper; -import static java.lang.String.format; - import java.awt.geom.Rectangle2D; import java.util.Arrays; -import java.util.HashMap; import java.util.List; import java.util.Map; import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Image; -import com.iqser.red.service.redaction.v1.server.document.graph.nodes.TableCell; import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType; import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Table; +import com.iqser.red.service.redaction.v1.server.document.graph.nodes.TableCell; +import com.knecon.fforesight.service.layoutparser.internal.api.data.redaction.DocumentStructure; import lombok.AccessLevel; import lombok.experimental.FieldDefaults; import lombok.experimental.UtilityClass; @UtilityClass -@FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) public class PropertiesMapper { - String imageType = "imageType"; - private final String transparency = "transparency"; - private final String position = "position"; - String id = "id"; - String row = "row"; - String col = "col"; - String header = "header"; - String bBox = "bBox"; - String numberOfRows = "numberOfRows"; - String numberOfCols = "numberOfCols"; - - - public Map buildImageProperties(Image image) { - - Map properties = new HashMap<>(); - properties.put(imageType, image.getImageType().toString()); - properties.put(transparency, String.valueOf(image.isTransparent())); - properties.put(position, toString(image.getPosition())); - properties.put(id, image.getId()); - return properties; - } - - - private String toString(Rectangle2D rectangle2D) { - - return format("%f,%f,%f,%f", rectangle2D.getX(), rectangle2D.getY(), rectangle2D.getWidth(), rectangle2D.getHeight()); - } - - - public Map buildTableCellProperties(TableCell tableCell) { - - Map properties = new HashMap<>(); - properties.put(row, String.valueOf(tableCell.getRow())); - properties.put(col, String.valueOf(tableCell.getCol())); - properties.put(header, String.valueOf(tableCell.isHeader())); - - if (tableCell.getPages().size() > 1 || tableCell.getBBox().keySet().size() > 1) { - throw new IllegalArgumentException("TableCell can only occur on a single page!"); - } - String bBoxString = toString(tableCell.getBBox().get(tableCell.getPages().stream().findFirst().get())); - properties.put(bBox, bBoxString); - - return properties; - } - - - public Map buildTableProperties(Table table) { - - Map properties = new HashMap<>(); - properties.put(numberOfRows, String.valueOf(table.getNumberOfRows())); - properties.put(numberOfCols, String.valueOf(table.getNumberOfCols())); - return properties; - } - - public void parseImageProperties(Map properties, Image.ImageBuilder builder) { - builder.imageType(ImageType.fromString(properties.get(imageType))); - builder.transparent(Boolean.parseBoolean(properties.get(transparency))); - builder.position(parseRectangle2D(properties.get(position))); - builder.id(properties.get(id)); + builder.imageType(ImageType.fromString(properties.get(DocumentStructure.ImageProperties.IMAGE_TYPE))); + builder.transparent(Boolean.parseBoolean(properties.get(DocumentStructure.ImageProperties.TRANSPARENT))); + builder.position(parseRectangle2D(properties.get(DocumentStructure.ImageProperties.POSITION))); + builder.id(properties.get(DocumentStructure.ImageProperties.ID)); } public void parseTableCellProperties(Map properties, TableCell.TableCellBuilder builder) { - builder.row(Integer.parseInt(properties.get(row))); - builder.col(Integer.parseInt(properties.get(col))); - builder.header(Boolean.parseBoolean(properties.get(header))); - builder.bBox(parseRectangle2D(properties.get(bBox))); + builder.row(Integer.parseInt(properties.get(DocumentStructure.TableCellProperties.ROW))); + builder.col(Integer.parseInt(properties.get(DocumentStructure.TableCellProperties.COL))); + builder.header(Boolean.parseBoolean(properties.get(DocumentStructure.TableCellProperties.HEADER))); + builder.bBox(parseRectangle2D(properties.get(DocumentStructure.TableCellProperties.B_BOX))); } public void parseTableProperties(Map properties, Table.TableBuilder builder) { - builder.numberOfRows(Integer.parseInt(properties.get(numberOfRows))); - builder.numberOfCols(Integer.parseInt(properties.get(numberOfCols))); + builder.numberOfRows(Integer.parseInt(properties.get(DocumentStructure.TableProperties.NUMBER_OF_ROWS))); + builder.numberOfCols(Integer.parseInt(properties.get(DocumentStructure.TableProperties.NUMBER_OF_COLS))); } private Rectangle2D parseRectangle2D(String bBox) { - List floats = Arrays.stream(bBox.split(",")).map(Float::parseFloat).toList(); + List floats = Arrays.stream(bBox.split(DocumentStructure.RECTANGLE_DELIMITER)).map(Float::parseFloat).toList(); return new Rectangle2D.Float(floats.get(0), floats.get(1), floats.get(2), floats.get(3)); }