diff --git a/.gitignore b/.gitignore
index 6bb4bada..2594dd52 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,49 @@
**/tmp/
**/.apt_generated/
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### maven build ###
+*.class
+/out/
+/build/
+/target/
+**/out/
+**/build/
+**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+.gradle
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
.factorypath
.springBeans
diff --git a/config/pmd/pmd.xml b/config/pmd/pmd.xml
index f8432016..e75174cb 100644
--- a/config/pmd/pmd.xml
+++ b/config/pmd/pmd.xml
@@ -16,6 +16,7 @@
+
\ No newline at end of file
diff --git a/config/pmd/test_pmd.xml b/config/pmd/test_pmd.xml
index 9c74fe41..f06feab0 100644
--- a/config/pmd/test_pmd.xml
+++ b/config/pmd/test_pmd.xml
@@ -18,6 +18,7 @@
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 444a00f4..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- 4.0.0
-
- redaction-service
- com.iqser.red.service
- 4.0-SNAPSHOT
-
-
- pom
-
-
- redaction-service-v1
- redaction-service-image-v1
-
-
-
diff --git a/redaction-service-v1/pom.xml b/redaction-service-v1/pom.xml
deleted file mode 100644
index 34978ace..00000000
--- a/redaction-service-v1/pom.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-
-
-
- platform-dependency
- com.iqser.red
- 2.2.0
-
-
- 4.0.0
-
- redaction-service-v1
- com.iqser.red.service
- 4.0-SNAPSHOT
-
- pom
-
-
- redaction-service-api-v1
- redaction-service-server-v1
-
-
-
- 2.0.24
- 1.18.26
-
-
-
-
-
-
- com.iqser.red
- platform-commons-dependency
- 2.5.0
- import
- pom
-
-
- org.apache.pdfbox
- pdfbox
- ${pdfbox.version}
-
-
- org.apache.pdfbox
- pdfbox-tools
- ${pdfbox.version}
-
-
-
-
-
-
-
-
- org.sonarsource.scanner.maven
- sonar-maven-plugin
-
-
- org.owasp
- dependency-check-maven
-
- ALL
-
-
-
- org.jacoco
- jacoco-maven-plugin
- 0.8.8
-
-
- org/drools/**/*
-
-
-
-
- prepare-agent
-
- prepare-agent
-
-
-
- report
-
- report
-
-
-
-
-
-
-
-
- org.projectlombok
- lombok-maven-plugin
- 1.18.20.0
-
-
- delombok
- generate-sources
-
- delombok
-
-
- false
- src/main/java
- ${delomboked.sources}
-
-
-
-
-
-
-
diff --git a/redaction-service-v1/redaction-service-api-v1/pom.xml b/redaction-service-v1/redaction-service-api-v1/pom.xml
deleted file mode 100644
index 44f6aca7..00000000
--- a/redaction-service-v1/redaction-service-api-v1/pom.xml
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
- 4.0.0
-
- redaction-service-v1
- com.iqser.red.service
- 4.0-SNAPSHOT
-
-
- redaction-service-api-v1
-
-
- 2.93.0
-
-
-
-
-
- org.springframework
- spring-web
- true
-
-
-
- com.iqser.red.service
- persistence-service-internal-api-v1
- ${persistence-service.version}
-
-
-
- com.iqser.red.service
- redaction-service-api-v1
-
-
- com.iqser.red.service
- persistence-service-api-v1
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
-
- org.projectlombok
- lombok
- ${lombok.version}
-
-
-
-
-
-
-
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 23963526..847b0fb7 100644
--- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts
+++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts
@@ -11,6 +11,7 @@ plugins {
dependencies {
implementation(project(":redaction-service-api-v1"))
+ implementation("com.iqser.red.service:persistence-service-internal-api-v1:2.79.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") }
diff --git a/redaction-service-v1/redaction-service-server-v1/pom.xml b/redaction-service-v1/redaction-service-server-v1/pom.xml
deleted file mode 100644
index e063363e..00000000
--- a/redaction-service-v1/redaction-service-server-v1/pom.xml
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
- 4.0.0
-
- redaction-service-v1
- com.iqser.red.service
- 4.0-SNAPSHOT
-
-
- redaction-service-server-v1
-
-
- 8.37.0.Final
- 7.73.0.Final
- 1.19.0
- 3.29.2-GA
- 0.6.3
- 2.14.2
- 0.10.0
-
-
-
-
- com.knecon.fforesight
- tenant-commons
- ${tennat-commons.version}
-
-
- org.springframework.boot
- spring-boot-starter-aop
-
-
-
- com.iqser.red.commons
- dictionary-merge-commons
- 1.3.0
-
-
-
- com.iqser.red.commons
- storage-commons
- 2.1.0
-
-
-
- com.fasterxml.jackson.module
- jackson-module-afterburner
- ${jackson.version}
-
-
-
- com.fasterxml.jackson.datatype
- jackson-datatype-jsr310
- ${jackson.version}
-
-
-
- org.ahocorasick
- ahocorasick
- ${ahocorasick.version}
-
-
-
- org.javassist
- javassist
- ${javaassist.version}
-
-
-
- com.iqser.red.service
- redaction-service-api-v1
- ${project.version}
-
-
- org.drools
- drools-engine
- ${drools.version}
-
-
- org.drools
- drools-mvel
- ${drools.version}
-
-
- org.kie
- kie-spring
- ${kie.version}
-
-
- org.locationtech.jts
- jts-core
- ${locationtech.version}
-
-
- com.google.guava
- guava
-
-
-
-
- com.iqser.red.commons
- spring-commons
-
-
- com.iqser.red.commons
- logging-commons
-
-
- com.iqser.red.commons
- metric-commons
-
-
-
- org.apache.pdfbox
- pdfbox
-
-
- org.apache.pdfbox
- pdfbox-tools
-
-
-
- org.springframework.cloud
- spring-cloud-starter-openfeign
-
-
-
- org.springframework.boot
- spring-boot-starter-amqp
-
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- com.iqser.red.commons
- test-commons
- test
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
-
- org.projectlombok
- lombok
- ${lombok.version}
-
-
-
-
-
-
-
- pl.project13.maven
- git-commit-id-plugin
-
-
-
- revision
-
-
- true
-
- true
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
- original-jar
-
- jar
-
-
- original
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
- repackage
-
-
- true
-
-
-
-
-
-
-
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/AtomicPositionBlockData.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/AtomicPositionBlockData.java
similarity index 88%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/AtomicPositionBlockData.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/AtomicPositionBlockData.java
index e346266f..7191252e 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/AtomicPositionBlockData.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/AtomicPositionBlockData.java
@@ -1,9 +1,9 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.data;
+package com.iqser.red.service.redaction.v1.server.document.data;
import java.awt.geom.Rectangle2D;
import java.util.List;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/AtomicTextBlockData.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/AtomicTextBlockData.java
similarity index 85%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/AtomicTextBlockData.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/AtomicTextBlockData.java
index 7afeabd4..935c0edf 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/AtomicTextBlockData.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/AtomicTextBlockData.java
@@ -1,6 +1,6 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.data;
+package com.iqser.red.service.redaction.v1.server.document.data;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/DocumentData.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/DocumentData.java
similarity index 89%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/DocumentData.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/DocumentData.java
index 3997d6b5..36c981db 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/DocumentData.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/DocumentData.java
@@ -1,6 +1,6 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.data;
+package com.iqser.red.service.redaction.v1.server.document.data;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/DocumentTreeData.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/DocumentTreeData.java
similarity index 80%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/DocumentTreeData.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/DocumentTreeData.java
index 53823da6..9ce59c50 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/DocumentTreeData.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/DocumentTreeData.java
@@ -1,18 +1,18 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.data;
+package com.iqser.red.service.redaction.v1.server.document.data;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper.PropertiesMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Image;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.NodeType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.data.mapper.PropertiesMapper;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Image;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.NodeType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.TableCell;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Table;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/PageData.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/PageData.java
similarity index 74%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/PageData.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/PageData.java
index 75bd3166..01741e5d 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/PageData.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/PageData.java
@@ -1,6 +1,6 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.data;
+package com.iqser.red.service.redaction.v1.server.document.data;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/mapper/DocumentGraphMapper.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/mapper/DocumentGraphMapper.java
similarity index 76%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/mapper/DocumentGraphMapper.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/mapper/DocumentGraphMapper.java
index 371e0f35..93cdf347 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/mapper/DocumentGraphMapper.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/mapper/DocumentGraphMapper.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper;
+package com.iqser.red.service.redaction.v1.server.document.data.mapper;
import java.util.Arrays;
import java.util.HashSet;
@@ -7,26 +7,26 @@ import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.AtomicPositionBlockData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.AtomicTextBlockData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.DocumentData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.DocumentTreeData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.PageData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Footer;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Header;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Headline;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Image;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Paragraph;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Section;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Footer;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Header;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Image;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Paragraph;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Section;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.TableCell;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.data.AtomicPositionBlockData;
+import com.iqser.red.service.redaction.v1.server.document.data.AtomicTextBlockData;
+import com.iqser.red.service.redaction.v1.server.document.data.DocumentData;
+import com.iqser.red.service.redaction.v1.server.document.data.DocumentTreeData;
+import com.iqser.red.service.redaction.v1.server.document.data.PageData;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Headline;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Table;
import lombok.experimental.UtilityClass;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/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
similarity index 88%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/data/mapper/PropertiesMapper.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/data/mapper/PropertiesMapper.java
index 5b475217..3277183c 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/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,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper;
+package com.iqser.red.service.redaction.v1.server.document.data.mapper;
import static java.lang.String.format;
@@ -8,10 +8,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Image;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.ImageType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
+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 lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/DocumentGraphFactory.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/DocumentGraphFactory.java
similarity index 88%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/DocumentGraphFactory.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/DocumentGraphFactory.java
index a9701164..e1f42c1e 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/DocumentGraphFactory.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/DocumentGraphFactory.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory;
+package com.iqser.red.service.redaction.v1.server.document.factory;
import static java.lang.String.format;
import static java.util.stream.Collectors.groupingBy;
@@ -13,6 +13,10 @@ import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Footer;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.GenericSemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Paragraph;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Section;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.ClassificationDocument;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.ClassificationFooter;
@@ -20,18 +24,14 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.mo
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.ClassificationPage;
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.TextPageBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Footer;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.GenericSemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Header;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Headline;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Image;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Paragraph;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Section;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.TextPositionOperations;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Header;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Headline;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Image;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.utils.TextPositionOperations;
import com.iqser.red.service.redaction.v1.server.redaction.utils.IdBuilder;
import lombok.AccessLevel;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/SearchTextWithTextPositionDto.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SearchTextWithTextPositionDto.java
similarity index 90%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/SearchTextWithTextPositionDto.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SearchTextWithTextPositionDto.java
index d6e7ca6e..22766b68 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/SearchTextWithTextPositionDto.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SearchTextWithTextPositionDto.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory;
+package com.iqser.red.service.redaction.v1.server.document.factory;
import java.awt.geom.Rectangle2D;
import java.util.Collections;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/SearchTextWithTextPositionFactory.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SearchTextWithTextPositionFactory.java
similarity index 99%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/SearchTextWithTextPositionFactory.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SearchTextWithTextPositionFactory.java
index eb4f8af8..27b36e85 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/SearchTextWithTextPositionFactory.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SearchTextWithTextPositionFactory.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory;
+package com.iqser.red.service.redaction.v1.server.document.factory;
import java.awt.geom.AffineTransform;
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/layoutparsing/document/factory/SectionNodeFactory.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SectionNodeFactory.java
similarity index 95%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/SectionNodeFactory.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SectionNodeFactory.java
index 1360e089..e8d06ea0 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/SectionNodeFactory.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/SectionNodeFactory.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory;
+package com.iqser.red.service.redaction.v1.server.document.factory;
import static java.lang.String.format;
import static java.util.Collections.emptyList;
@@ -11,14 +11,14 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Stream;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.GenericSemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Section;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock;
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.TablePageBlock;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPageBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.GenericSemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Section;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.TableMergingUtility;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.utils.TableMergingUtility;
import lombok.experimental.UtilityClass;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/TableNodeFactory.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/TableNodeFactory.java
similarity index 88%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/TableNodeFactory.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/TableNodeFactory.java
index 368fca4b..c29d572e 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/TableNodeFactory.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/TableNodeFactory.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory;
+package com.iqser.red.service.redaction.v1.server.document.factory;
import static java.util.Collections.emptyList;
@@ -7,17 +7,17 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.GenericSemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.AbstractPageBlock;
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.TablePageBlock;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.GenericSemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.TextPositionOperations;
+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.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.utils.TextPositionOperations;
import lombok.experimental.UtilityClass;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/TextBlockFactory.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/TextBlockFactory.java
similarity index 82%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/TextBlockFactory.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/TextBlockFactory.java
index dd79c6d2..efb3b383 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/factory/TextBlockFactory.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/factory/TextBlockFactory.java
@@ -1,11 +1,11 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory;
+package com.iqser.red.service.redaction.v1.server.document.factory;
import java.util.List;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/Boundary.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/Boundary.java
similarity index 95%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/Boundary.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/Boundary.java
index 835c08b3..31116bc5 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/Boundary.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/Boundary.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph;
+package com.iqser.red.service.redaction.v1.server.document.graph;
import static java.lang.String.format;
@@ -6,7 +6,7 @@ import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import lombok.EqualsAndHashCode;
import lombok.Setter;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/ConsecutiveBoundaryCollector.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/ConsecutiveBoundaryCollector.java
similarity index 95%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/ConsecutiveBoundaryCollector.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/ConsecutiveBoundaryCollector.java
index 3a35bbc7..aceb9bd7 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/ConsecutiveBoundaryCollector.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/ConsecutiveBoundaryCollector.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph;
+package com.iqser.red.service.redaction.v1.server.document.graph;
import java.util.LinkedList;
import java.util.List;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/DocumentTree.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentTree.java
similarity index 85%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/DocumentTree.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentTree.java
index 674a4ded..91432036 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/DocumentTree.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentTree.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph;
+package com.iqser.red.service.redaction.v1.server.document.graph;
import static java.lang.String.format;
@@ -7,14 +7,14 @@ import java.util.LinkedList;
import java.util.List;
import java.util.stream.Stream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.GenericSemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.NodeType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.GenericSemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.NodeType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.TableCell;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Table;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlockCollector;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/EntityType.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/EntityType.java
similarity index 54%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/EntityType.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/EntityType.java
index 362833e5..4db81e91 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/EntityType.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/EntityType.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity;
+package com.iqser.red.service.redaction.v1.server.document.graph.entity;
public enum EntityType {
ENTITY,
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/MatchedRule.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/MatchedRule.java
similarity index 95%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/MatchedRule.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/MatchedRule.java
index ee1767e2..ee87c15d 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/MatchedRule.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/MatchedRule.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity;
+package com.iqser.red.service.redaction.v1.server.document.graph.entity;
import java.util.Collections;
import java.util.Objects;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/MatchedRuleHolder.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/MatchedRuleHolder.java
similarity index 98%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/MatchedRuleHolder.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/MatchedRuleHolder.java
index 44af7bf9..9dbab542 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/MatchedRuleHolder.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/MatchedRuleHolder.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity;
+package com.iqser.red.service.redaction.v1.server.document.graph.entity;
import java.util.Collection;
import java.util.HashSet;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RedactionEntity.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RedactionEntity.java
similarity index 94%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RedactionEntity.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RedactionEntity.java
index 5ddc15d9..ed30acf3 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RedactionEntity.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RedactionEntity.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity;
+package com.iqser.red.service.redaction.v1.server.document.graph.entity;
import java.awt.geom.Rectangle2D;
import java.util.Collection;
@@ -11,9 +11,9 @@ import java.util.PriorityQueue;
import java.util.Set;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Engine;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
import com.iqser.red.service.redaction.v1.server.redaction.utils.IdBuilder;
import lombok.AccessLevel;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RedactionPosition.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RedactionPosition.java
similarity index 74%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RedactionPosition.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RedactionPosition.java
index 73981a1f..726fb32b 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RedactionPosition.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RedactionPosition.java
@@ -1,9 +1,9 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity;
+package com.iqser.red.service.redaction.v1.server.document.graph.entity;
import java.awt.geom.Rectangle2D;
import java.util.List;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RuleIdentifier.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RuleIdentifier.java
similarity index 92%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RuleIdentifier.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RuleIdentifier.java
index 137bcf37..776a50a9 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/entity/RuleIdentifier.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/entity/RuleIdentifier.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity;
+package com.iqser.red.service.redaction.v1.server.document.graph.entity;
import java.util.Objects;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Document.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Document.java
similarity index 85%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Document.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Document.java
index 6007f411..60919d36 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Document.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Document.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.awt.geom.Rectangle2D;
import java.util.Collections;
@@ -10,10 +10,10 @@ import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlockCollector;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Footer.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Footer.java
similarity index 77%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Footer.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Footer.java
index 5419a070..06bd3bff 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Footer.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Footer.java
@@ -1,12 +1,12 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/GenericSemanticNode.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/GenericSemanticNode.java
new file mode 100644
index 00000000..3ed31fdc
--- /dev/null
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/GenericSemanticNode.java
@@ -0,0 +1,5 @@
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
+
+public interface GenericSemanticNode extends SemanticNode {
+
+}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Header.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Header.java
similarity index 77%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Header.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Header.java
index 57e89e12..28f82e08 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Header.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Header.java
@@ -1,12 +1,12 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Headline.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Headline.java
similarity index 78%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Headline.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Headline.java
index 8eae571b..1b495d6e 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Headline.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Headline.java
@@ -1,13 +1,13 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Image.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Image.java
similarity index 72%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Image.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Image.java
index ed5b64c7..39d610c1 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Image.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Image.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.awt.geom.Rectangle2D;
import java.util.Collections;
@@ -9,12 +9,12 @@ import java.util.Map;
import java.util.PriorityQueue;
import java.util.Set;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.MatchedRule;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.MatchedRuleHolder;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRuleHolder;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlockCollector;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/ImageType.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/ImageType.java
similarity index 71%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/ImageType.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/ImageType.java
index adf2d4ea..5db33ec8 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/ImageType.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/ImageType.java
@@ -1,4 +1,6 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
+
+import java.util.Locale;
public enum ImageType {
LOGO,
@@ -10,7 +12,7 @@ public enum ImageType {
public static ImageType fromString(String imageType) {
- return switch (imageType.toLowerCase()) {
+ return switch (imageType.toLowerCase(Locale.ROOT)) {
case "logo" -> ImageType.LOGO;
case "formula" -> ImageType.FORMULA;
case "signature" -> ImageType.SIGNATURE;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/NodeType.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/NodeType.java
similarity index 77%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/NodeType.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/NodeType.java
index 78ea7c49..135acb4e 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/NodeType.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/NodeType.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.util.Locale;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Page.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Page.java
similarity index 83%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Page.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Page.java
index 28e2b60c..c7fefb81 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Page.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Page.java
@@ -1,14 +1,14 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.ClassificationPage;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlockCollector;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Paragraph.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Paragraph.java
similarity index 72%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Paragraph.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Paragraph.java
index 01b78550..bc0f26aa 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Paragraph.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Paragraph.java
@@ -1,12 +1,12 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Section.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Section.java
similarity index 80%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Section.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Section.java
index 106cebf1..3e38c156 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Section.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Section.java
@@ -1,13 +1,13 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlockCollector;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/SectionIdentifier.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/SectionIdentifier.java
similarity index 97%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/SectionIdentifier.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/SectionIdentifier.java
index b1455c2f..12c3f4e9 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/SectionIdentifier.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/SectionIdentifier.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.util.Collections;
import java.util.LinkedList;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/SemanticNode.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/SemanticNode.java
similarity index 95%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/SemanticNode.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/SemanticNode.java
index d91756c1..6d398921 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/SemanticNode.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/SemanticNode.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import static java.lang.String.format;
@@ -7,18 +7,19 @@ import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.utils.RectangleTransformations;
+import com.iqser.red.service.redaction.v1.server.document.utils.RedactionSearchUtility;
public interface SemanticNode {
@@ -371,7 +372,7 @@ public interface SemanticNode {
*/
default boolean containsStringIgnoreCase(String string) {
- return getTextBlock().getSearchText().toLowerCase().contains(string.toLowerCase());
+ return getTextBlock().getSearchText().toLowerCase(Locale.ROOT).contains(string.toLowerCase(Locale.ROOT));
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Table.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Table.java
similarity index 96%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Table.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Table.java
index 4a7c2cbf..a33ea6c5 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/Table.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/Table.java
@@ -1,18 +1,19 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import static java.lang.String.format;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Set;
import java.util.stream.IntStream;
import java.util.stream.Stream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlockCollector;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
@@ -66,7 +67,7 @@ public class Table implements SemanticNode {
*/
public boolean rowContainsStringsIgnoreCase(Integer row, List strings) {
- String rowText = streamRow(row).map(TableCell::getTextBlock).collect(new TextBlockCollector()).getSearchText().toLowerCase();
+ String rowText = streamRow(row).map(TableCell::getTextBlock).collect(new TextBlockCollector()).getSearchText().toLowerCase(Locale.ROOT);
return strings.stream().map(String::toLowerCase).allMatch(rowText::contains);
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/TableCell.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/TableCell.java
similarity index 78%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/TableCell.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/TableCell.java
index 704ffc16..7a959d35 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/TableCell.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/nodes/TableCell.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
+package com.iqser.red.service.redaction.v1.server.document.graph.nodes;
import java.awt.geom.Rectangle2D;
import java.util.HashMap;
@@ -7,10 +7,10 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlockCollector;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlockCollector;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/AtomicTextBlock.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/AtomicTextBlock.java
similarity index 91%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/AtomicTextBlock.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/AtomicTextBlock.java
index 3fc40c4d..fa1fa23d 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/AtomicTextBlock.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/AtomicTextBlock.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock;
+package com.iqser.red.service.redaction.v1.server.document.graph.textblock;
import static java.lang.String.format;
@@ -12,13 +12,13 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.AtomicPositionBlockData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.AtomicTextBlockData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory.SearchTextWithTextPositionDto;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations;
+import com.iqser.red.service.redaction.v1.server.document.factory.SearchTextWithTextPositionDto;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.utils.RectangleTransformations;
+import com.iqser.red.service.redaction.v1.server.document.data.AtomicPositionBlockData;
+import com.iqser.red.service.redaction.v1.server.document.data.AtomicTextBlockData;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/ConcatenatedTextBlock.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/ConcatenatedTextBlock.java
similarity index 96%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/ConcatenatedTextBlock.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/ConcatenatedTextBlock.java
index 959c05ef..392f968d 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/ConcatenatedTextBlock.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/ConcatenatedTextBlock.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock;
+package com.iqser.red.service.redaction.v1.server.document.graph.textblock;
import static java.lang.String.format;
@@ -10,8 +10,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
import lombok.AccessLevel;
import lombok.Data;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/TextBlock.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/TextBlock.java
similarity index 90%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/TextBlock.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/TextBlock.java
index 0270bf20..e75760a8 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/TextBlock.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/TextBlock.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock;
+package com.iqser.red.service.redaction.v1.server.document.graph.textblock;
import static java.lang.String.format;
@@ -10,9 +10,9 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.utils.RectangleTransformations;
public interface TextBlock extends CharSequence {
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/TextBlockCollector.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/TextBlockCollector.java
similarity index 91%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/TextBlockCollector.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/TextBlockCollector.java
index 119e636f..bb98abe3 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/TextBlockCollector.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/graph/textblock/TextBlockCollector.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock;
+package com.iqser.red.service.redaction.v1.server.document.graph.textblock;
import java.util.Set;
import java.util.function.BiConsumer;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/EntityCreationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityCreationService.java
similarity index 93%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/EntityCreationService.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityCreationService.java
index a2313503..acd0c68b 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/EntityCreationService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityCreationService.java
@@ -1,8 +1,6 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.services;
+package com.iqser.red.service.redaction.v1.server.document.services;
-import static com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility.anyMatch;
-import static com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility.getExpandedEndByRegex;
-import static com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility.getExpandedStartByRegex;
+import static com.iqser.red.service.redaction.v1.server.document.utils.RedactionSearchUtility.anyMatch;
import static com.iqser.red.service.redaction.v1.server.redaction.utils.SeparatorUtils.boundaryIsSurroundedBySeparators;
import static java.util.stream.Collectors.toMap;
@@ -22,20 +20,20 @@ import org.kie.api.runtime.KieSession;
import com.google.common.base.Functions;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Engine;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.ConsecutiveBoundaryCollector;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionPosition;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.NodeType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionPosition;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.NodeType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+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.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.utils.RectangleTransformations;
+import com.iqser.red.service.redaction.v1.server.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.document.graph.ConsecutiveBoundaryCollector;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntitiesAdapter;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.SearchImplementation;
@@ -450,14 +448,14 @@ public class EntityCreationService {
public Optional byPrefixExpansionRegex(RedactionEntity entity, String regexPattern) {
- int expandedStart = getExpandedStartByRegex(entity, regexPattern);
+ int expandedStart = RedactionSearchUtility.getExpandedStartByRegex(entity, regexPattern);
return byBoundary(new Boundary(expandedStart, entity.getBoundary().end()), entity.getType(), entity.getEntityType(), entity.getDeepestFullyContainingNode());
}
public Optional bySuffixExpansionRegex(RedactionEntity entity, String regexPattern) {
- int expandedEnd = getExpandedEndByRegex(entity, regexPattern);
+ int expandedEnd = RedactionSearchUtility.getExpandedEndByRegex(entity, regexPattern);
expandedEnd = truncateEndIfLineBreakIsBetween(entity.getBoundary().end(), expandedEnd, entity.getDeepestFullyContainingNode().getTextBlock());
return byBoundary(new Boundary(entity.getBoundary().start(), expandedEnd), entity.getType(), entity.getEntityType(), entity.getDeepestFullyContainingNode());
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/EntityEnrichmentService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityEnrichmentService.java
similarity index 91%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/EntityEnrichmentService.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityEnrichmentService.java
index 7f0a437e..3578d3ca 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/EntityEnrichmentService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/EntityEnrichmentService.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.services;
+package com.iqser.red.service.redaction.v1.server.document.services;
import java.util.Arrays;
import java.util.List;
@@ -6,8 +6,8 @@ import java.util.Objects;
import org.springframework.stereotype.Service;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings;
import lombok.RequiredArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/ManualRedactionApplicationService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/ManualRedactionApplicationService.java
similarity index 82%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/ManualRedactionApplicationService.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/ManualRedactionApplicationService.java
index d9bf3bcf..e1d4ea29 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/services/ManualRedactionApplicationService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/services/ManualRedactionApplicationService.java
@@ -1,14 +1,14 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.services;
+package com.iqser.red.service.redaction.v1.server.document.services;
import java.awt.geom.Rectangle2D;
import java.util.NoSuchElementException;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionPosition;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Image;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionPosition;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Image;
+import com.iqser.red.service.redaction.v1.server.document.utils.RectangleTransformations;
import lombok.RequiredArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/PdfVisualisationUtility.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/PdfVisualisationUtility.java
similarity index 89%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/PdfVisualisationUtility.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/PdfVisualisationUtility.java
index 838c7c5c..da2e3595 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/PdfVisualisationUtility.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/PdfVisualisationUtility.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils;
+package com.iqser.red.service.redaction.v1.server.document.utils;
import java.awt.Color;
import java.awt.geom.Point2D;
@@ -12,12 +12,12 @@ import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.NodeType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.DocumentTree;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.NodeType;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import lombok.AccessLevel;
import lombok.Builder;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RectangleTransformations.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/RectangleTransformations.java
similarity index 97%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RectangleTransformations.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/RectangleTransformations.java
index 8211323d..745e1f87 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RectangleTransformations.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/RectangleTransformations.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils;
+package com.iqser.red.service.redaction.v1.server.document.utils;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RectangularShape;
@@ -17,7 +17,7 @@ import org.apache.pdfbox.pdmodel.common.PDRectangle;
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.layoutparsing.classification.model.AbstractPageBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.AtomicTextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.AtomicTextBlock;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RedactionSearchUtility.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/RedactionSearchUtility.java
similarity index 94%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RedactionSearchUtility.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/RedactionSearchUtility.java
index 628fcf04..a87f37e6 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RedactionSearchUtility.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/RedactionSearchUtility.java
@@ -1,18 +1,17 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils;
+package com.iqser.red.service.redaction.v1.server.document.utils;
import static java.lang.String.format;
import java.awt.geom.Rectangle2D;
import java.util.LinkedList;
import java.util.List;
-import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.IntStream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import com.iqser.red.service.redaction.v1.server.redaction.utils.Patterns;
import lombok.experimental.UtilityClass;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TableMergingUtility.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TableMergingUtility.java
similarity index 96%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TableMergingUtility.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TableMergingUtility.java
index 51995d0d..918ab52d 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TableMergingUtility.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TableMergingUtility.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils;
+package com.iqser.red.service.redaction.v1.server.document.utils;
import java.util.Collection;
import java.util.LinkedList;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TextPositionOperations.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TextPositionOperations.java
similarity index 92%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TextPositionOperations.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TextPositionOperations.java
index c2687ea2..e57abb58 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TextPositionOperations.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TextPositionOperations.java
@@ -1,4 +1,4 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils;
+package com.iqser.red.service.redaction.v1.server.document.utils;
import java.util.List;
import java.util.stream.Collectors;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TextPositionSequenceComparator.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TextPositionSequenceComparator.java
similarity index 97%
rename from redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TextPositionSequenceComparator.java
rename to redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TextPositionSequenceComparator.java
index 8e171f5c..3cddb638 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/TextPositionSequenceComparator.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/document/utils/TextPositionSequenceComparator.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.layoutparsing.document.utils;
+package com.iqser.red.service.redaction.v1.server.document.utils;
import java.util.Comparator;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/ImageServiceResponseAdapter.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/ImageServiceResponseAdapter.java
index 9c395a1f..72b3e104 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/ImageServiceResponseAdapter.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/adapter/ImageServiceResponseAdapter.java
@@ -14,7 +14,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image.ImageServiceResponse;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.ClassificationPage;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image.ClassifiedImage;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.ImageType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType;
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
import lombok.RequiredArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/image/ClassifiedImage.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
index c9129e08..268d05b7 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/image/ClassifiedImage.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
@@ -2,7 +2,7 @@ package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.m
import java.awt.geom.Rectangle2D;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.ImageType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType;
import lombok.Data;
import lombok.NonNull;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/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
index 48a33a6b..fd56ba71 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/model/text/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
@@ -4,6 +4,7 @@ import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.List;
+import java.util.Locale;
import java.util.stream.Collectors;
import org.apache.pdfbox.text.TextPosition;
@@ -75,7 +76,7 @@ public class TextPositionSequence implements CharSequence {
RedTextPosition textPosition = textPositionAt(index);
String text = textPosition.getUnicode();
- return caseInSensitive ? text.toLowerCase().charAt(0) : text.charAt(0);
+ return caseInSensitive ? text.toLowerCase(Locale.ROOT).charAt(0) : text.charAt(0);
}
@@ -214,14 +215,14 @@ public class TextPositionSequence implements CharSequence {
@JsonIgnore
public String getFont() {
- return textPositions.get(0).getFontName().toLowerCase().replaceAll(",bold", "").replaceAll(",italic", "");
+ return textPositions.get(0).getFontName().toLowerCase(Locale.ROOT).replaceAll(",bold", "").replaceAll(",italic", "");
}
@JsonIgnore
public String getFontStyle() {
- String lowercaseFontName = textPositions.get(0).getFontName().toLowerCase();
+ String lowercaseFontName = textPositions.get(0).getFontName().toLowerCase(Locale.ROOT);
if (lowercaseFontName.contains("bold") && lowercaseFontName.contains("italic")) {
return "bold, italic";
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/LineDetectionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/LineDetectionService.java
index 758b9890..e7acdf75 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/LineDetectionService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/LineDetectionService.java
@@ -6,8 +6,8 @@ import java.util.LinkedList;
import java.util.List;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.TextPositionSequenceComparator;
+import com.iqser.red.service.redaction.v1.server.document.utils.RectangleTransformations;
+import com.iqser.red.service.redaction.v1.server.document.utils.TextPositionSequenceComparator;
import lombok.AllArgsConstructor;
import lombok.experimental.UtilityClass;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/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
index 94227fbc..77e0bc82 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/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
@@ -29,7 +29,6 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.mo
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.layoutparsing.document.utils.RectangleTransformations;
import com.iqser.red.service.redaction.v1.server.settings.RedactionServiceSettings;
import lombok.RequiredArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/GenericSemanticNode.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/GenericSemanticNode.java
deleted file mode 100644
index e5505d6f..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/nodes/GenericSemanticNode.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes;
-
-public interface GenericSemanticNode extends SemanticNode {
-
-}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java
index dfbf04ba..58056cbe 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/queue/RedactionMessageReceiver.java
@@ -73,31 +73,6 @@ public class RedactionMessageReceiver {
try {
switch (analyzeRequest.getMessageType()) {
- case REANALYSE:
- log.info("");
- log.info("------------------------------Reanalysis------------------------------------------");
- log.info("Starting Reanalysis for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId());
- log.debug(analyzeRequest.getManualRedactions().toString());
- result = analyzeService.reanalyze(analyzeRequest);
- log.info("Successfully reanalyzed dossier {} file {} took: {} s",
- analyzeRequest.getDossierId(),
- analyzeRequest.getFileId(),
- format("%.2f", result.getDuration() / 1000.0));
- log.info("----------------------------------------------------------------------------------");
- break;
-
- case STRUCTURE_ANALYSE:
- log.info("");
- log.info("------------------------------Structure Analysis----------------------------------");
- log.info("Starting Structure Analysis for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId());
- result = analyzeService.analyzeDocumentStructure(new StructureAnalyzeRequest(analyzeRequest.getDossierId(), analyzeRequest.getFileId()));
- log.info("Successfully analyzed structure dossier {} file {} took: {} s",
- analyzeRequest.getDossierId(),
- analyzeRequest.getFileId(),
- format("%.2f", result.getDuration() / 1000.0));
- log.info("----------------------------------------------------------------------------------");
- break;
-
case ANALYSE:
log.info("");
log.info("------------------------------Full Analysis---------------------------------------");
@@ -111,6 +86,19 @@ public class RedactionMessageReceiver {
log.info("----------------------------------------------------------------------------------");
break;
+ case REANALYSE:
+ log.info("");
+ log.info("------------------------------Reanalysis------------------------------------------");
+ log.info("Starting Reanalysis for file {} in dossier {}", analyzeRequest.getFileId(), analyzeRequest.getDossierId());
+ log.debug(analyzeRequest.getManualRedactions().toString());
+ result = analyzeService.reanalyze(analyzeRequest);
+ log.info("Successfully reanalyzed dossier {} file {} took: {} s",
+ analyzeRequest.getDossierId(),
+ analyzeRequest.getFileId(),
+ format("%.2f", result.getDuration() / 1000.0));
+ log.info("----------------------------------------------------------------------------------");
+ break;
+
case SURROUNDING_TEXT:
log.info("");
log.info("------------------------------Add surrounding Text--------------------------------");
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/CustomEntityCreationAdapter.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/CustomEntityCreationAdapter.java
index 3742c2d6..6958e879 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/CustomEntityCreationAdapter.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/CustomEntityCreationAdapter.java
@@ -12,7 +12,6 @@ import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
-import java.util.stream.Stream;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -21,14 +20,14 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Rectangle;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionPosition;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionPosition;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.SearchImplementation;
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/redaction/adapter/NerEntities.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntities.java
index 95e5f5fa..7a87ec76 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntities.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntities.java
@@ -4,7 +4,7 @@ import java.util.LinkedList;
import java.util.List;
import java.util.stream.Stream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntitiesAdapter.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntitiesAdapter.java
index 677cd09a..70cd2315 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntitiesAdapter.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntitiesAdapter.java
@@ -9,10 +9,10 @@ import java.util.stream.Stream;
import com.iqser.red.service.redaction.v1.server.client.model.EntityRecognitionEntity;
import com.iqser.red.service.redaction.v1.server.client.model.NerEntitiesModel;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Section;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Section;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/Dictionary.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/Dictionary.java
index 6cf4fd71..b4dac375 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/Dictionary.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/Dictionary.java
@@ -16,8 +16,8 @@ import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import com.iqser.red.service.redaction.v1.server.exception.NotFoundException;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.MatchedRule;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
import com.iqser.red.service.redaction.v1.server.redaction.utils.Patterns;
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/dictionary/DictionaryModel.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/DictionaryModel.java
index 9e17b4c4..da25189e 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/DictionaryModel.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/DictionaryModel.java
@@ -7,7 +7,7 @@ import java.util.stream.Collectors;
import com.iqser.red.service.dictionarymerge.commons.DictionaryEntry;
import com.iqser.red.service.dictionarymerge.commons.DictionaryEntryModel;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.MatchedRule;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule;
import lombok.AllArgsConstructor;
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/dictionary/SearchImplementation.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/SearchImplementation.java
index aa6eab52..cae7949b 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/SearchImplementation.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/model/dictionary/SearchImplementation.java
@@ -9,7 +9,7 @@ import java.util.stream.Collectors;
import org.ahocorasick.trie.Trie;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
import lombok.Data;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeService.java
index c24b3dee..7685c4f5 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/AnalyzeService.java
@@ -28,6 +28,12 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlo
import com.iqser.red.service.redaction.v1.model.StructureAnalyzeRequest;
import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient;
import com.iqser.red.service.redaction.v1.server.client.model.NerEntitiesModel;
+import com.iqser.red.service.redaction.v1.server.document.data.DocumentData;
+import com.iqser.red.service.redaction.v1.server.document.data.mapper.DocumentGraphMapper;
+import com.iqser.red.service.redaction.v1.server.document.factory.DocumentGraphFactory;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Section;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
import com.iqser.red.service.redaction.v1.server.exception.RedactionException;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.ImageServiceResponseAdapter;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.ClassificationDocument;
@@ -35,12 +41,7 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.mo
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.SimplifiedSectionText;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.SimplifiedText;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service.PdfSegmentationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.DocumentData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper.DocumentGraphMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory.DocumentGraphFactory;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Section;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
+
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntitiesAdapter;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.Dictionary;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java
index abc763c5..315f22c5 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/DroolsExecutionService.java
@@ -14,7 +14,6 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collector;
-import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
@@ -35,11 +34,11 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction;
import com.iqser.red.service.redaction.v1.server.client.RulesClient;
import com.iqser.red.service.redaction.v1.server.exception.RulesValidationException;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.ManualRedactionApplicationService;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.services.ManualRedactionApplicationService;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.Dictionary;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java
index 09347f7e..ed195da6 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/EntityRedactionService.java
@@ -12,11 +12,11 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttribu
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Engine;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.CustomEntityCreationAdapter;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.Dictionary;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.SearchImplementation;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ManualRedactionSurroundingTextService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ManualRedactionSurroundingTextService.java
index 405af603..af219805 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ManualRedactionSurroundingTextService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/ManualRedactionSurroundingTextService.java
@@ -15,15 +15,15 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.Rectangle;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry;
import com.iqser.red.service.redaction.v1.server.exception.NotFoundException;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper.DocumentGraphMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionPosition;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.document.data.mapper.DocumentGraphMapper;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionPosition;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.utils.RedactionSearchUtility;
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
import io.micrometer.core.annotation.Timed;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogCreatorService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogCreatorService.java
index 6f45290b..cbec7fde 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogCreatorService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/RedactionLogCreatorService.java
@@ -10,13 +10,13 @@ import org.springframework.stereotype.Service;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.Rectangle;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionPosition;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Image;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.ImageType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionPosition;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Image;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType;
+import com.iqser.red.service.redaction.v1.server.document.utils.RectangleTransformations;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -112,7 +112,7 @@ public class RedactionLogCreatorService {
public RedactionLogEntry createRedactionLogEntry(Image image, String dossierTemplateId) {
- String imageType = image.getImageType().equals(ImageType.OTHER) ? "image" : image.getImageType().toString().toLowerCase();
+ String imageType = image.getImageType().equals(ImageType.OTHER) ? "image" : image.getImageType().toString().toLowerCase(Locale.ROOT);
return RedactionLogEntry.builder()
.id(image.getId())
.color(getColor(image.getImageType().toString().toLowerCase(Locale.ROOT), dossierTemplateId, image.isApplied()))
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SectionFinderService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SectionFinderService.java
index 49b2cdeb..4fb92f20 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SectionFinderService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SectionFinderService.java
@@ -16,7 +16,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.DictionaryIncrement;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.DictionaryIncrementValue;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.SearchImplementation;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SectionGridCreatorService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SectionGridCreatorService.java
index 9f4bd0a1..af9054fb 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SectionGridCreatorService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/service/SectionGridCreatorService.java
@@ -19,12 +19,12 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlo
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.section.CellRectangle;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.section.SectionGrid;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.section.SectionRectangle;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.NodeType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.NodeType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+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 lombok.RequiredArgsConstructor;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/IdBuilder.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/IdBuilder.java
index d1a3da42..7547c4a5 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/IdBuilder.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/IdBuilder.java
@@ -9,7 +9,7 @@ import java.util.stream.Collectors;
import com.google.common.hash.HashFunction;
import com.google.common.hash.Hashing;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
import lombok.experimental.UtilityClass;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/ResourceLoader.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/ResourceLoader.java
index 2f8f4d28..893381ac 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/ResourceLoader.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/ResourceLoader.java
@@ -15,7 +15,7 @@ public final class ResourceLoader {
public Set load(String classpathPath) {
- URL resource = ResourceLoader.class.getClassLoader().getResource(classpathPath);
+ URL resource = Thread.currentThread().getContextClassLoader().getResource(classpathPath);
if (resource == null) {
throw new IllegalArgumentException("could not load classpath resource: " + classpathPath);
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/SeparatorUtils.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/SeparatorUtils.java
index 544c44c3..2d216334 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/SeparatorUtils.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/redaction/utils/SeparatorUtils.java
@@ -3,8 +3,8 @@ package com.iqser.red.service.redaction.v1.server.redaction.utils;
import java.util.Set;
import java.util.regex.Pattern;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
import lombok.experimental.UtilityClass;
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/storage/RedactionStorageService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java
index dba81456..e261ea86 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java
@@ -10,7 +10,7 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlo
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.section.SectionGrid;
import com.iqser.red.service.redaction.v1.server.client.model.NerEntitiesModel;
import com.iqser.red.service.redaction.v1.server.exception.NotFoundException;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.DocumentData;
+import com.iqser.red.service.redaction.v1.server.document.data.DocumentData;
import com.iqser.red.storage.commons.exception.StorageObjectDoesNotExist;
import com.iqser.red.storage.commons.service.StorageService;
import com.knecon.fforesight.tenantcommons.TenantContext;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractRedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractRedactionIntegrationTest.java
index 0ba5be71..4c34c6a0 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractRedactionIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/AbstractRedactionIntegrationTest.java
@@ -242,7 +242,7 @@ public abstract class AbstractRedactionIntegrationTest {
@SneakyThrows
protected static String loadFromClassPath(String path) {
- URL resource = ResourceLoader.class.getClassLoader().getResource(path);
+ URL resource = Thread.currentThread().getContextClassLoader().getResource(path);
if (resource == null) {
throw new IllegalArgumentException("could not load classpath resource:" + path);
}
@@ -417,7 +417,7 @@ public abstract class AbstractRedactionIntegrationTest {
private List toDictionaryEntry(List entries) {
if (entries == null) {
- entries = Collections.emptyList();
+ return Collections.emptyList();
}
return entries.stream().map(this::toDictionaryEntry).collect(Collectors.toList());
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/HeadlinesGoldStandardIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/HeadlinesGoldStandardIntegrationTest.java
index 66d2da03..f8355f87 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/HeadlinesGoldStandardIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/HeadlinesGoldStandardIntegrationTest.java
@@ -32,8 +32,8 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemp
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.ChangeType;
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLog;
import com.iqser.red.service.redaction.v1.model.StructureAnalyzeRequest;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper.DocumentGraphMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.data.mapper.DocumentGraphMapper;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
import com.iqser.red.service.redaction.v1.server.redaction.service.AnalyzeService;
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
import com.iqser.red.storage.commons.StorageAutoConfiguration;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java
index 5eef2b49..0276b16c 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RedactionIntegrationTest.java
@@ -69,14 +69,14 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlo
import com.iqser.red.service.redaction.v1.model.StructureAnalyzeRequest;
import com.iqser.red.service.redaction.v1.server.annotate.AnnotateRequest;
import com.iqser.red.service.redaction.v1.server.annotate.AnnotateResponse;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper.DocumentGraphMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Section;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.data.mapper.DocumentGraphMapper;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Section;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
import com.iqser.red.service.redaction.v1.server.redaction.utils.OsUtils;
import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
import com.iqser.red.storage.commons.StorageAutoConfiguration;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java
index a1f81376..3dd8109d 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/RulesTest.java
@@ -123,8 +123,8 @@ public class RulesTest {
private final static String TEST_DOSSIER_TEMPLATE_ID = "123";
private final static String TEST_DOSSIER_ID = "123";
private String TEST_FILE_ID = "123";
- private int counter = 0;
- private int fileSize = 0;
+ private int counter;
+ private int fileSize;
private final Map> dictionary = new HashMap<>();
private final Map> dossierDictionary = new HashMap<>();
private final Map> falsePositive = new HashMap<>();
@@ -798,7 +798,7 @@ public class RulesTest {
private static String loadFromClassPath(String path) {
- URL resource = ResourceLoader.class.getClassLoader().getResource(path);
+ URL resource = Thread.currentThread().getContextClassLoader().getResource(path);
if (resource == null) {
throw new IllegalArgumentException("could not load classpath resource: " + path);
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java
index 0fbc010b..6b680939 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/annotate/AnnotationService.java
@@ -1,6 +1,6 @@
package com.iqser.red.service.redaction.v1.server.annotate;
-import static com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations.toPDRectangleBBox;
+import static com.iqser.red.service.redaction.v1.server.document.utils.RectangleTransformations.toPDRectangleBBox;
import java.awt.Color;
import java.awt.geom.Rectangle2D;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/entity/RedactionEntityTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/entity/RedactionEntityTest.java
index 2c261855..bcea5ea7 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/entity/RedactionEntityTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/entity/RedactionEntityTest.java
@@ -5,9 +5,9 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
public class RedactionEntityTest {
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BoundaryTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BoundaryTest.java
index 488cf027..d7918ca3 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BoundaryTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BoundaryTest.java
@@ -11,8 +11,6 @@ import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-
class BoundaryTest {
Boundary startBoundary;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BuildDocumentIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BuildDocumentIntegrationTest.java
index d90b30d2..211038cd 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BuildDocumentIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/BuildDocumentIntegrationTest.java
@@ -26,8 +26,8 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.ad
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.ClassificationDocument;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.image.ClassifiedImage;
import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service.PdfSegmentationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.factory.DocumentGraphFactory;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.factory.DocumentGraphFactory;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
import com.iqser.red.storage.commons.StorageAutoConfiguration;
import com.iqser.red.storage.commons.service.StorageService;
@@ -62,13 +62,14 @@ public class BuildDocumentIntegrationTest extends AbstractRedactionIntegrationTe
@SneakyThrows
protected Document buildGraph(String filename) {
+ String fileNameWithPdf = filename;
if (!filename.endsWith(".pdf")) {
- filename = filename + ".pdf";
+ fileNameWithPdf = filename + ".pdf";
}
- if (filename.equals("files/Metolachlor/S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf")) {
- prepareStorage(filename, "files/cv_service_empty_response.json", filename.replace(".pdf", ".IMAGE_INFO.json"));
+ if (fileNameWithPdf.equals("files/Metolachlor/S-Metolachlor_RAR_01_Volume_1_2018-09-06.pdf")) {
+ prepareStorage(fileNameWithPdf, "files/cv_service_empty_response.json", fileNameWithPdf.replace(".pdf", ".IMAGE_INFO.json"));
} else {
- uploadFileToStorage(filename);
+ uploadFileToStorage(fileNameWithPdf);
}
ClassPathResource fileResource = new ClassPathResource(filename);
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentEntityInsertionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentEntityInsertionIntegrationTest.java
index 7b9958ea..96a70a1f 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentEntityInsertionIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentEntityInsertionIntegrationTest.java
@@ -16,21 +16,19 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.DocumentTree;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Headline;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.NodeType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Paragraph;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Headline;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.NodeType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Paragraph;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+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.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
public class DocumentEntityInsertionIntegrationTest extends BuildDocumentIntegrationTest {
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentMappingIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentMappingIntegrationTest.java
index c02ec70f..eef48563 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentMappingIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentMappingIntegrationTest.java
@@ -5,16 +5,16 @@ import static org.wildfly.common.Assert.assertTrue;
import org.junit.jupiter.api.Test;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.AtomicPositionBlockData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.AtomicTextBlockData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.DocumentData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.DocumentTreeData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.PageData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper.DocumentGraphMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper.PropertiesMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.NodeType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
+import com.iqser.red.service.redaction.v1.server.document.data.AtomicPositionBlockData;
+import com.iqser.red.service.redaction.v1.server.document.data.AtomicTextBlockData;
+import com.iqser.red.service.redaction.v1.server.document.data.DocumentData;
+import com.iqser.red.service.redaction.v1.server.document.data.DocumentTreeData;
+import com.iqser.red.service.redaction.v1.server.document.data.PageData;
+import com.iqser.red.service.redaction.v1.server.document.data.mapper.DocumentGraphMapper;
+import com.iqser.red.service.redaction.v1.server.document.data.mapper.PropertiesMapper;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.NodeType;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Table;
import com.knecon.fforesight.tenantcommons.TenantContext;
import lombok.SneakyThrows;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentPerformanceIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentPerformanceIntegrationTest.java
index fd964cb2..b15636d6 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentPerformanceIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentPerformanceIntegrationTest.java
@@ -31,16 +31,16 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.FileAttribu
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.ManualRedactions;
import com.iqser.red.service.persistence.service.v1.api.shared.model.common.JSONPrimitive;
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.Type;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Section;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SemanticNode;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.PdfVisualisationUtility;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Section;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.SemanticNode;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.utils.PdfVisualisationUtility;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.Dictionary;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.DictionaryModel;
@@ -250,8 +250,7 @@ public class DocumentPerformanceIntegrationTest extends BuildDocumentIntegration
var tmpFileName = "/tmp/" + filename.split("/")[2] + "_ENTITY_BBOX.pdf";
var fileResource = new ClassPathResource(filename + ".pdf");
- try (var fileStream = fileResource.getInputStream()) {
- PDDocument pdDocument = PDDocument.load(fileStream);
+ try (var fileStream = fileResource.getInputStream(); PDDocument pdDocument = PDDocument.load(fileStream)) {
for (Page page : document.getPages()) {
List entityPositionsOnPage = page.getEntities()
@@ -282,7 +281,6 @@ public class DocumentPerformanceIntegrationTest extends BuildDocumentIntegration
}
File outputFile = new File(tmpFileName);
pdDocument.save(outputFile);
- pdDocument.close();
}
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentTableIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentTableIntegrationTest.java
index dab62c2e..675b92e3 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentTableIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentTableIntegrationTest.java
@@ -4,10 +4,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Page;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Table;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.TableCell;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Page;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Table;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.TableCell;
public class DocumentTableIntegrationTest extends BuildDocumentIntegrationTest {
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentVisualizationIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentVisualizationIntegrationTest.java
index 48bcc90c..f2e4580a 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentVisualizationIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/DocumentVisualizationIntegrationTest.java
@@ -9,9 +9,9 @@ import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.springframework.core.io.ClassPathResource;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock.TextBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.PdfVisualisationUtility;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.textblock.TextBlock;
+import com.iqser.red.service.redaction.v1.server.document.utils.PdfVisualisationUtility;
import lombok.SneakyThrows;
@@ -78,15 +78,14 @@ public class DocumentVisualizationIntegrationTest extends BuildDocumentIntegrati
var tmpFileName = "/tmp/" + filename.split("/")[2] + "_SEMANTIC_NODES_BBOX.pdf";
var fileResource = new ClassPathResource(filename + ".pdf");
- try (var fileStream = fileResource.getInputStream()) {
- PDDocument pdDocument = PDDocument.load(fileStream);
+ try (var fileStream = fileResource.getInputStream(); PDDocument pdDocument = PDDocument.load(fileStream)) {
+
PdfVisualisationUtility.drawDocumentGraph(pdDocument, document);
PdfVisualisationUtility.drawTextBlock(pdDocument,
textBlock,
PdfVisualisationUtility.Options.builder().stroke(true).strokeWidth(0.1f).strokeColor(Color.YELLOW).build());
File outputFile = new File(tmpFileName);
pdDocument.save(outputFile);
- pdDocument.close();
}
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/ManualResizeRedactionIntegrationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/ManualResizeRedactionIntegrationTest.java
index ec0d3674..8ec79895 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/ManualResizeRedactionIntegrationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/ManualResizeRedactionIntegrationTest.java
@@ -31,14 +31,14 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionPosition;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Paragraph;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.ManualRedactionApplicationService;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionPosition;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Paragraph;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.services.ManualRedactionApplicationService;
@Import(ManualResizeRedactionIntegrationTest.TestConfiguration.class)
public class ManualResizeRedactionIntegrationTest extends BuildDocumentIntegrationTest {
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/MigrationPocTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/MigrationPocTest.java
index 76ac38a5..f1beec2b 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/MigrationPocTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/MigrationPocTest.java
@@ -25,9 +25,9 @@ import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlo
import com.iqser.red.service.persistence.service.v1.api.shared.model.redactionlog.RedactionLogEntry;
import com.iqser.red.service.redaction.v1.model.StructureAnalyzeRequest;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.CustomEntityCreationAdapter;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.DocumentData;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.data.mapper.DocumentGraphMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.data.DocumentData;
+import com.iqser.red.service.redaction.v1.server.document.data.mapper.DocumentGraphMapper;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
import com.iqser.red.service.redaction.v1.server.redaction.service.RedactionLogCreatorService;
import com.knecon.fforesight.tenantcommons.TenantContext;
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/SearchImplementationTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/SearchImplementationTest.java
index b80613b4..047037fc 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/SearchImplementationTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/document/graph/SearchImplementationTest.java
@@ -7,11 +7,11 @@ import java.util.List;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
import com.iqser.red.service.redaction.v1.server.redaction.model.dictionary.SearchImplementation;
public class SearchImplementationTest extends BuildDocumentIntegrationTest {
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/ColumnDetectionServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/ColumnDetectionServiceTest.java
deleted file mode 100644
index 0d0712dc..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/ColumnDetectionServiceTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service;
-
-import java.awt.geom.Rectangle2D;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.util.List;
-
-import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.pdmodel.PDPage;
-import org.junit.jupiter.api.Test;
-import org.springframework.core.io.ClassPathResource;
-
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.parsing.PDFLinesTextStripper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.PdfVisualisationUtility;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RectangleTransformations;
-
-import lombok.SneakyThrows;
-
-class ColumnDetectionServiceTest {
-
- @Test
- @SneakyThrows
- public void testColumnDetection() {
-
- String filename = "files/Documine/Flora/ProblemDocs/S37Struktur.pdf";
- var tmpFileName = "/tmp/" + filename.split("/")[2] + "_COLUMNS.pdf";
- try (InputStream inputStream = new ClassPathResource(filename).getInputStream()) {
-
- PDDocument pdDocument = PDDocument.load(inputStream);
- System.out.println("start column detection");
- long start = System.currentTimeMillis();
-
- for (int pageNumber = 1; pageNumber < pdDocument.getNumberOfPages() + 1; pageNumber++) {
-
- PDFLinesTextStripper stripper = new PDFLinesTextStripper();
- PDPage pdPage = pdDocument.getPage(pageNumber - 1);
- stripper.setPageNumber(pageNumber);
- stripper.setStartPage(pageNumber);
- stripper.setEndPage(pageNumber);
- stripper.setPdpage(pdPage);
- stripper.getText(pdDocument);
-
- List columns = ColumnDetectionService.detectColumns(stripper.getTextPositionSequences(), RectangleTransformations.toRectangle2D(pdPage.getCropBox()));
- System.out.printf("found %d columns on page %d%n", columns.size(), pageNumber);
- PdfVisualisationUtility.drawRectangle2DList(pdDocument, pageNumber, columns, PdfVisualisationUtility.Options.builder().stroke(true).build());
- }
-
- System.out.printf("finished col detection, took %d ms", System.currentTimeMillis() - start);
-
- try (var out = new FileOutputStream(tmpFileName)) {
- pdDocument.save(out);
- pdDocument.close();
- }
- }
-
- }
-
-}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/LineDetectionServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/LineDetectionServiceTest.java
deleted file mode 100644
index b8480776..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/classification/service/LineDetectionServiceTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service;
-
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.util.List;
-
-import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.pdmodel.PDPage;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.springframework.core.io.ClassPathResource;
-
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.parsing.PDFLinesTextStripper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.PdfVisualisationUtility;
-
-import lombok.SneakyThrows;
-
-class LineDetectionServiceTest {
-
- @Test
- @Disabled
- @SneakyThrows
- public void testLineDetection() {
-
- String filename = "files/BDR/Plenarprotokoll 1 (keine Druchsache!) (1).pdf";
- var tmpFileName = "/tmp/" + filename.split("/")[2] + "_LINES.pdf";
- try (InputStream inputStream = new ClassPathResource(filename).getInputStream()) {
-
- PDDocument pdDocument = PDDocument.load(inputStream);
- System.out.println("start column detection");
- long start = System.currentTimeMillis();
-
- for (int pageNumber = 1; pageNumber < pdDocument.getNumberOfPages() + 1; pageNumber++) {
-
- PDFLinesTextStripper stripper = new PDFLinesTextStripper();
- PDPage pdPage = pdDocument.getPage(pageNumber - 1);
- stripper.setPageNumber(pageNumber);
- stripper.setStartPage(pageNumber);
- stripper.setEndPage(pageNumber);
- stripper.setPdpage(pdPage);
- stripper.getText(pdDocument);
-
- List> linesWithGaps = LineDetectionService.findLinesWithGaps(stripper.getTextPositionSequences());
- System.out.printf("found %d lines on page %d%n", linesWithGaps.size(), pageNumber);
- for (int i = 0; i < linesWithGaps.size(); i++) {
- PdfVisualisationUtility.drawRectangle2DList(pdDocument, pageNumber, linesWithGaps.get(i), PdfVisualisationUtility.Options.builder().stroke(true).build());
- PdfVisualisationUtility.drawText(String.format("%d", i),
- pdDocument,
- new Point2D.Double(linesWithGaps.get(i).get(0).getX() - (5 + (5 * countNumberOfDigits(i))), linesWithGaps.get(i).get(0).getY() + 2),
- pageNumber,
- PdfVisualisationUtility.Options.builder().stroke(true).build());
-
- }
- }
-
- System.out.printf("finished line detection, took %d ms", System.currentTimeMillis() - start);
-
- try (var out = new FileOutputStream(tmpFileName)) {
- pdDocument.save(out);
- pdDocument.close();
- }
- }
- }
-
-
- private int countNumberOfDigits(int num) {
-
- if (num == 0) {
- return 1;
- }
- int count = 0;
- for (; num != 0; num /= 10, ++count) {
- }
- return count;
- }
-
-}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/ConsecutiveBoundaryCollectorTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/ConsecutiveBoundaryCollectorTest.java
deleted file mode 100644
index 222c6648..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/ConsecutiveBoundaryCollectorTest.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-class ConsecutiveBoundaryCollectorTest {
-
-}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/sectionidentifiers/SectionIdentifierTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/sectionidentifiers/SectionIdentifierTest.java
deleted file mode 100644
index 36d89b62..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/sectionidentifiers/SectionIdentifierTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.sectionidentifiers;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import org.junit.jupiter.api.Test;
-
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.SectionIdentifier;
-
-class SectionIdentifierTest {
-
- @Test
- public void testParentOf() {
-
- var headline = SectionIdentifier.fromSearchText("1 Did you ever hear the tragedy of Darth Plagueis The Wise?");
- var headline1 = SectionIdentifier.fromSearchText("1.0 I thought not. It’s not a story the Jedi would tell you.");
- var headline2 = SectionIdentifier.fromSearchText("1.1 It’s a Sith legend. Darth Plagueis was a Dark Lord of the Sith, ");
- var headline3 = SectionIdentifier.fromSearchText("1.2.3 so powerful and so wise he could use the Force to influence the midichlorians to create life…");
- var headline4 = SectionIdentifier.fromSearchText("1.2.3.4 He had such a knowledge of the dark side that he could even keep the ones he cared about from dying.");
- var headline5 = SectionIdentifier.fromSearchText("1.2.3.4.5 The dark side of the Force is a pathway to many abilities some consider to be unnatural.");
- var headline6 = SectionIdentifier.fromSearchText("2.0 He became so powerful…");
- var headline7 = SectionIdentifier.fromSearchText("10000.0 the only thing he was afraid of was losing his power,");
- var headline8 = SectionIdentifier.fromSearchText("A.0 which eventually, of course, he did.");
- var headline9 = SectionIdentifier.fromSearchText("Unfortunately, he taught his apprentice everything he knew, then his apprentice killed him in his sleep.");
- var headline10 = SectionIdentifier.fromSearchText("2.1.2 Ironic.");
- var headline11 = SectionIdentifier.fromSearchText("2.He could save others from death,");
- var headline12 = SectionIdentifier.fromSearchText(" 2. but not himself.");
-
- var paragraph1 = SectionIdentifier.asChildOf(headline);
- assertTrue(paragraph1.isChildOf(headline));
- assertTrue(headline.isParentOf(paragraph1));
- assertFalse(paragraph1.isParentOf(headline));
-
- assertFalse(headline.isParentOf(headline1));
- assertTrue(headline.isParentOf(headline2));
- assertTrue(headline.isParentOf(headline3));
- assertTrue(headline.isParentOf(headline4));
- assertTrue(headline.isParentOf(headline5));
- assertTrue(headline1.isParentOf(headline2));
- assertFalse(headline1.isParentOf(headline1));
- assertTrue(headline3.isParentOf(headline4));
- assertFalse(headline4.isParentOf(headline5));
- assertFalse(headline2.isParentOf(headline3));
- assertFalse(headline2.isParentOf(headline4));
- assertTrue(headline1.isParentOf(headline3));
- assertTrue(headline1.isParentOf(headline4));
- assertFalse(headline1.isParentOf(headline6));
- assertFalse(headline1.isParentOf(headline7));
- assertFalse(headline8.isParentOf(headline1));
- assertFalse(headline8.isParentOf(headline2));
- assertFalse(headline8.isParentOf(headline3));
- assertFalse(headline8.isParentOf(headline4));
- assertFalse(headline9.isParentOf(headline9));
- assertTrue(headline10.isChildOf(headline11));
- assertTrue(headline10.isChildOf(headline12));
- }
-
-}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/AtomicTextBlockTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/AtomicTextBlockTest.java
deleted file mode 100644
index 76bb80e1..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/graph/textblock/AtomicTextBlockTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.textblock;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.List;
-
-import org.junit.jupiter.api.Test;
-
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-
-class AtomicTextBlockTest {
-
- @Test
- void subSequenceWithLineBreaks1() {
-
- String searchText = "1234 6789 ";
- var atb = AtomicTextBlock.builder().searchText(searchText).lineBreaks(List.of(5, 7)).boundary(new Boundary(0, searchText.length())).build();
- String searchTextWithLineBreaks = atb.searchTextWithLineBreaks();
- assertEquals("1234\n6789\n", searchTextWithLineBreaks);
- }
-
-
- @Test
- void subSequenceWithLineBreaks2() {
-
- String searchText = "1234 6789 ";
- var atb = AtomicTextBlock.builder().searchText(searchText).lineBreaks(List.of(5, 7, 8, 9)).boundary(new Boundary(0, searchText.length())).build();
- String searchTextWithLineBreaks = atb.searchTextWithLineBreaks();
- assertEquals("1234\n6789\n", searchTextWithLineBreaks);
- }
-
-
- @Test
- void subSequenceWithLineBreaks3() {
-
- String searchText = "1234 6789 1234 ";
- var atb = AtomicTextBlock.builder().searchText(searchText).lineBreaks(List.of(5, 7)).boundary(new Boundary(0, searchText.length())).build();
- String searchTextWithLineBreaks = atb.searchTextWithLineBreaks();
- assertEquals("1234\n6789\n1234\n", searchTextWithLineBreaks);
- }
-
-
- @Test
- void subSequenceWithLineBreaks4() {
-
- String searchText = "1234 6789 1234 ";
- var atb = AtomicTextBlock.builder().searchText(searchText).lineBreaks(List.of(5, 7)).boundary(new Boundary(0, searchText.length())).build();
- var textBlock = new ConcatenatedTextBlock(List.of(atb));
- String searchTextWithLineBreaks = textBlock.searchTextWithLineBreaks();
- assertEquals("1234\n6789\n1234\n", searchTextWithLineBreaks);
- }
-
-
- @Test
- void subSequenceWithLineBreaks5() {
-
- String searchText1 = "1234 6789 ";
- String searchText2 = "1234 ";
- var atb1 = AtomicTextBlock.builder().searchText(searchText1).lineBreaks(List.of(5, 7)).boundary(new Boundary(0, searchText1.length())).build();
- var atb2 = AtomicTextBlock.builder()
- .searchText(searchText2)
- .lineBreaks(List.of())
- .boundary(new Boundary(searchText1.length(), searchText1.length() + searchText2.length()))
- .build();
- var textBlock = new ConcatenatedTextBlock(List.of(atb1, atb2));
- String searchTextWithLineBreaks = textBlock.searchTextWithLineBreaks();
- assertEquals("1234\n6789\n1234\n", searchTextWithLineBreaks);
- }
-
-
- @Test
- void subSequenceWithLineBreaks6() {
-
- String searchText1 = "1234 6789 ";
- String searchText2 = "1234 ";
- String searchText3 = "1234 8475678900 ";
- var atb1 = AtomicTextBlock.builder().searchText(searchText1).lineBreaks(List.of(5, 7)).boundary(new Boundary(0, searchText1.length())).build();
- var atb2 = AtomicTextBlock.builder()
- .searchText(searchText2)
- .lineBreaks(List.of())
- .boundary(new Boundary(searchText1.length(), searchText1.length() + searchText2.length()))
- .build();
- var atb3 = AtomicTextBlock.builder()
- .searchText(searchText3)
- .lineBreaks(List.of(atb2.getBoundary().end() + 6))
- .boundary(new Boundary(atb2.getBoundary().end(), atb2.getBoundary().end() + searchText3.length()))
- .build();
- var textBlock = new ConcatenatedTextBlock(List.of(atb1, atb2, atb3));
- String searchTextWithLineBreaks = textBlock.searchTextWithLineBreaks();
- assertEquals("1234\n6789\n1234\n1234 8475678900\n", searchTextWithLineBreaks);
- }
-
-}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RectangleTransformationsTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RectangleTransformationsTest.java
deleted file mode 100644
index 6bc9603f..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/layoutparsing/document/utils/RectangleTransformationsTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.awt.geom.Rectangle2D;
-import java.util.List;
-
-import org.junit.jupiter.api.Test;
-
-class RectangleTransformationsTest {
-
- @Test
- public void testRectangle2DBBox() {
-
- var r1 = new Rectangle2D.Double(0, 0, 1, 1);
- var r2 = new Rectangle2D.Double(1, 1, 1, 1);
- var result = RectangleTransformations.rectangle2DBBox(List.of(r1, r2));
- assertEquals(0, result.getX());
- assertEquals(0, result.getY());
- assertEquals(2, result.getWidth());
- assertEquals(2, result.getHeight());
- }
-
-
- @Test
- public void testRectangle2DBBox2() {
-
- var r1 = new Rectangle2D.Double(0, 0, -1, -1);
- var r2 = new Rectangle2D.Double(1, 1, 1, 1);
- var result = RectangleTransformations.rectangle2DBBox(List.of(r1, r2));
- assertEquals(-1, result.getX());
- assertEquals(-1, result.getY());
- assertEquals(3, result.getWidth());
- assertEquals(3, result.getHeight());
- }
-
-
- @Test
- public void testRectangle2DBBox3() {
-
- var r1 = new Rectangle2D.Double(0, 0, -1, -1);
- var r2 = new Rectangle2D.Double(1, 1, 1, 1);
- var result = RectangleTransformations.rectangle2DBBox(List.of(r2, r1));
- assertEquals(-1, result.getX());
- assertEquals(-1, result.getY());
- assertEquals(3, result.getWidth());
- assertEquals(3, result.getHeight());
- }
-
-
- @Test
- public void testRectangle2DBBox4() {
-
- var r1 = new Rectangle2D.Double(2, 0, -1, -1);
- var r2 = new Rectangle2D.Double(0, 2, 1, -1);
- var result = RectangleTransformations.rectangle2DBBox(List.of(r2, r1));
- assertEquals(0, result.getX());
- assertEquals(-1, result.getY());
- assertEquals(2, result.getWidth());
- assertEquals(3, result.getHeight());
- }
-
-
- @Test
- public void testRectangle2DBBox5() {
-
- var r1 = new Rectangle2D.Double(2, 0, -1, -1);
- var r2 = new Rectangle2D.Double(0, 2, 1, -1);
- var r3 = new Rectangle2D.Double(3, 2, 1, 1);
- var result = RectangleTransformations.rectangle2DBBox(List.of(r2, r1, r3));
- assertEquals(0, result.getX());
- assertEquals(-1, result.getY());
- assertEquals(4, result.getWidth());
- assertEquals(4, result.getHeight());
- }
-
-
- @Test
- public void testRectangle2DBBox6() {
-
- var r1 = new Rectangle2D.Double(0, 0, -1, -1);
- var r2 = new Rectangle2D.Double(-1, -1, -1, -1);
- var result = RectangleTransformations.rectangle2DBBox(List.of(r1, r2));
- assertEquals(-2, result.getX());
- assertEquals(-2, result.getY());
- assertEquals(2, result.getWidth());
- assertEquals(2, result.getHeight());
- }
-
-}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequenceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequenceTest.java
deleted file mode 100644
index 0ac3e145..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/parsing/model/TextPositionSequenceTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.parsing.model;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.ByteArrayInputStream;
-import java.nio.charset.StandardCharsets;
-
-import org.apache.pdfbox.util.Matrix;
-import org.junit.jupiter.api.Test;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextDirection;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.text.TextPositionSequence;
-import com.iqser.red.storage.commons.properties.StorageProperties;
-import com.iqser.red.storage.commons.service.ObjectSerializer;
-
-import lombok.SneakyThrows;
-
-public class TextPositionSequenceTest {
-
- private static final String TEXT_POSITION_SEQUENCE_AS_JSON = "{\n" //
- + " \"page\": 1,\n" //
- + " \"textPositions\": [],\n" //
- + " \"dir\": 180.0,\n" //
- + " \"rotation\": 0,\n" //
- + " \"pageHeight\": 800,\n" //
- + " \"pageWidth\": 600\n" //
- + "}";
-
- private final ObjectSerializer objectSerializer = new ObjectSerializer(new ObjectMapper(), new StorageProperties());
-
-
- @Test
- @SneakyThrows
- public void testDeserializationWithJackson() {
-
- TextPositionSequence textPositionSequence = objectSerializer.deserializeWithJackson(new ByteArrayInputStream(TEXT_POSITION_SEQUENCE_AS_JSON.getBytes(StandardCharsets.UTF_8)),
- TextPositionSequence.class);
-
- assertPropertiesAfterJsonDeserialization(textPositionSequence);
- }
-
-
- private void assertPropertiesAfterJsonDeserialization(TextPositionSequence textPositionSequence) {
-
- assertThat(textPositionSequence.getPage()).isEqualTo(1);
- assertThat(textPositionSequence.getTextPositions()).hasSize(0);
- assertThat(textPositionSequence.getDir()).isEqualTo(TextDirection.HALF_CIRCLE);
- assertThat(textPositionSequence.getRotation()).isEqualTo(0);
- assertThat(textPositionSequence.getPageHeight()).isEqualTo(800f);
- assertThat(textPositionSequence.getPageWidth()).isEqualTo(600f);
- }
-
-
- private Matrix createIdentityMatrix() {
-
- return new Matrix();
- }
-
-}
\ No newline at end of file
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntitiesAdapterTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntitiesAdapterTest.java
index 57ad24ba..b2026b25 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntitiesAdapterTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/adapter/NerEntitiesAdapterTest.java
@@ -21,14 +21,14 @@ import org.springframework.core.io.ClassPathResource;
import com.iqser.red.commons.jackson.ObjectMapperFactory;
import com.iqser.red.service.redaction.v1.server.client.model.NerEntitiesModel;
import com.iqser.red.service.redaction.v1.server.document.graph.BuildDocumentIntegrationTest;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.EntityType;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionPosition;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.Document;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityCreationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.services.EntityEnrichmentService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.PdfVisualisationUtility;
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionPosition;
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.Document;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityCreationService;
+import com.iqser.red.service.redaction.v1.server.document.services.EntityEnrichmentService;
+import com.iqser.red.service.redaction.v1.server.document.utils.PdfVisualisationUtility;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
@@ -68,27 +68,28 @@ class NerEntitiesAdapterTest extends BuildDocumentIntegrationTest {
assertTrue(entityRecognitionEntities.stream().allMatch(entity -> entity.boundary().start() < entity.boundary().end()));
ClassPathResource resource = new ClassPathResource(filePath);
- PDDocument pdDocument = PDDocument.load(resource.getInputStream());
- Stream unchangedAddressParts = NerEntitiesAdapter.toNerEntities(parseNerEntities(nerEntitiesFilePath), document)
- .getNerEntityList()
- .stream()
- .filter(e -> !e.type().equals("CBI_author"));
- List redactionEntities = Stream.concat(entityRecognitionEntities.stream(), unchangedAddressParts)
- .map(e -> entityCreationService.byBoundary(e.boundary(), e.type(), EntityType.ENTITY, document))
- .filter(Optional::isPresent)
- .map(Optional::get)
- .toList();
- redactionEntities.stream()
- .collect(Collectors.groupingBy(e -> e.getPages().stream().findFirst().get().getNumber()))
- .forEach((pageNumber, entities) -> drawNerEntitiesAsPartsAndCombined(pageNumber,
- getPositionsFromEntityOfType("CBI_author", entities),
- getPositionsFromEntityNotOfType(List.of("CBI_author", "CBI_address"), entities),
- getPositionsFromEntityOfType("CBI_address", entities),
- pdDocument));
+ try (PDDocument pdDocument = PDDocument.load(resource.getInputStream())) {
- File outputFile = new File("/tmp/nerEntities.pdf");
- pdDocument.save(outputFile);
- pdDocument.close();
+ Stream unchangedAddressParts = NerEntitiesAdapter.toNerEntities(parseNerEntities(nerEntitiesFilePath), document)
+ .getNerEntityList()
+ .stream()
+ .filter(e -> !e.type().equals("CBI_author"));
+ List redactionEntities = Stream.concat(entityRecognitionEntities.stream(), unchangedAddressParts)
+ .map(e -> entityCreationService.byBoundary(e.boundary(), e.type(), EntityType.ENTITY, document))
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .toList();
+ redactionEntities.stream()
+ .collect(Collectors.groupingBy(e -> e.getPages().stream().findFirst().get().getNumber()))
+ .forEach((pageNumber, entities) -> drawNerEntitiesAsPartsAndCombined(pageNumber,
+ getPositionsFromEntityOfType("CBI_author", entities),
+ getPositionsFromEntityNotOfType(List.of("CBI_author", "CBI_address"), entities),
+ getPositionsFromEntityOfType("CBI_address", entities),
+ pdDocument));
+
+ File outputFile = new File("/tmp/nerEntities.pdf");
+ pdDocument.save(outputFile);
+ }
}
@@ -116,26 +117,26 @@ class NerEntitiesAdapterTest extends BuildDocumentIntegrationTest {
assertTrue(cbiAddressEntities.stream().allMatch(entity -> entity.getBoundary().start() < entity.getBoundary().end()));
ClassPathResource resource = new ClassPathResource(filePath);
- PDDocument pdDocument = PDDocument.load(resource.getInputStream());
- List validatedEntities = NerEntitiesAdapter.toNerEntities(parseNerEntities(nerEntitiesFilePath), document)
- .getNerEntityList()
- .stream()
- .map(e -> entityCreationService.byBoundary(e.boundary(), e.type(), EntityType.ENTITY, document))
- .filter(Optional::isPresent)
- .map(Optional::get)
- .toList();
- Stream.concat(cbiAddressEntities.stream(), validatedEntities.stream())
- .collect(Collectors.groupingBy(e -> e.getPages().stream().findFirst().get().getNumber()))
- .forEach((pageNumber, entities) -> drawNerEntitiesAsPartsAndCombined(pageNumber,
- getPositionsFromEntityOfType("CBI_author", entities),
- getPositionsFromEntityNotOfType(List.of("CBI_author", "CBI_address"), entities),
- getPositionsFromEntityOfType("CBI_address", entities),
- pdDocument));
+ try (PDDocument pdDocument = PDDocument.load(resource.getInputStream())) {
- File outputFile = new File("/tmp/nerEntities.pdf");
- pdDocument.save(outputFile);
- pdDocument.close();
+ List validatedEntities = NerEntitiesAdapter.toNerEntities(parseNerEntities(nerEntitiesFilePath), document)
+ .getNerEntityList()
+ .stream()
+ .map(e -> entityCreationService.byBoundary(e.boundary(), e.type(), EntityType.ENTITY, document))
+ .filter(Optional::isPresent)
+ .map(Optional::get)
+ .toList();
+ Stream.concat(cbiAddressEntities.stream(), validatedEntities.stream())
+ .collect(Collectors.groupingBy(e -> e.getPages().stream().findFirst().get().getNumber()))
+ .forEach((pageNumber, entities) -> drawNerEntitiesAsPartsAndCombined(pageNumber,
+ getPositionsFromEntityOfType("CBI_author", entities),
+ getPositionsFromEntityNotOfType(List.of("CBI_author", "CBI_address"), entities),
+ getPositionsFromEntityOfType("CBI_address", entities),
+ pdDocument));
+ File outputFile = new File("/tmp/nerEntities.pdf");
+ pdDocument.save(outputFile);
+ }
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/utils/RegExPatternTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/utils/RegExPatternTest.java
index 476b9268..8b10d245 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/utils/RegExPatternTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/utils/RegExPatternTest.java
@@ -64,7 +64,6 @@ public class RegExPatternTest {
String word = "Porch JR, " + "Kendall TZ, " + "Krueger HO";
- word.replaceAll(",", " ").replaceAll(" ", " ");
Pattern pattern = Pattern.compile("[A-ZÄÖÜ][\\wäöüéèê]{2,}( [A-ZÄÖÜ]{1,2}\\.)+");
Matcher matcher = pattern.matcher(word);
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/utils/ResourceLoader.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/utils/ResourceLoader.java
index db4c30c2..c1153a6d 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/utils/ResourceLoader.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/redaction/utils/ResourceLoader.java
@@ -23,7 +23,7 @@ public final class ResourceLoader {
List files;
try {
- files = IOUtils.readLines(ResourceLoader.class.getClassLoader().getResourceAsStream(name), "UTF-8");
+ files = IOUtils.readLines(Thread.currentThread().getContextClassLoader().getResourceAsStream(name), "UTF-8");
} catch (IOException e) {
throw new IllegalArgumentException("could not load classpath resource: " + name, e);
}
@@ -39,7 +39,7 @@ public final class ResourceLoader {
public Set load(String classpathPath) {
- URL resource = ResourceLoader.class.getClassLoader().getResource(classpathPath);
+ URL resource = Thread.currentThread().getContextClassLoader().getResource(classpathPath);
if (resource == null) {
throw new IllegalArgumentException("could not load classpath resource: " + classpathPath);
}
@@ -53,7 +53,7 @@ public final class ResourceLoader {
public String loadToString(String classpathPath) {
- URL resource = ResourceLoader.class.getClassLoader().getResource(classpathPath);
+ URL resource = Thread.currentThread().getContextClassLoader().getResource(classpathPath);
if (resource == null) {
throw new IllegalArgumentException("could not load classpath resource: " + classpathPath);
}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java
deleted file mode 100644
index 0dbed963..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/segmentation/PdfSegmentationServiceTest.java
+++ /dev/null
@@ -1,604 +0,0 @@
-package com.iqser.red.service.redaction.v1.server.segmentation;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.awt.geom.Rectangle2D;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.kie.api.runtime.KieContainer;
-import org.springframework.amqp.rabbit.core.RabbitTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-import com.amazonaws.services.s3.AmazonS3;
-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.Application;
-import com.iqser.red.service.redaction.v1.server.FileSystemBackedStorageService;
-import com.iqser.red.service.redaction.v1.server.client.LegalBasisClient;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.adapter.image.ImageServiceResponse;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.model.ClassificationDocument;
-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.TablePageBlock;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service.BlockificationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service.PdfSegmentationService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service.RulingCleaningService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.classification.service.TableExtractionService;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.nodes.ImageType;
-import com.iqser.red.service.redaction.v1.server.storage.RedactionStorageService;
-import com.iqser.red.storage.commons.StorageAutoConfiguration;
-import com.iqser.red.storage.commons.service.StorageService;
-import com.knecon.fforesight.tenantcommons.TenantContext;
-import com.knecon.fforesight.tenantcommons.TenantsClient;
-
-import lombok.SneakyThrows;
-
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
-@Import(PdfSegmentationServiceTest.TestConfiguration.class)
-public class PdfSegmentationServiceTest {
-
- @MockBean
- private TenantsClient tenantsClient;
-
- @Autowired
- private PdfSegmentationService pdfSegmentationService;
-
- @Autowired
- private RulingCleaningService rulingCleaningService;
-
- @Autowired
- private TableExtractionService tableExtractionService;
-
- @Autowired
- private BlockificationService blockificationService;
-
- @MockBean
- private KieContainer kieContainer;
-
- @MockBean
- private AmazonS3 amazonS3;
-
- @MockBean
- private RabbitTemplate rabbitTemplate;
-
- @MockBean
- private LegalBasisClient legalBasisClient;
-
- @Autowired
- private StorageService storageService;
-
- @Autowired
- private ObjectMapper objectMapper;
-
- private final static String TEST_DOSSIER_ID = "123";
- private final static String TEST_FILE_ID = "123";
-
- @Configuration
- @EnableAutoConfiguration(exclude = {RabbitAutoConfiguration.class})
- @ComponentScan(excludeFilters = {@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = StorageAutoConfiguration.class)})
- public static class TestConfiguration {
-
- @Bean
- @Primary
- public StorageService inmemoryStorage() {
-
- return new FileSystemBackedStorageService();
- }
-
- }
-
-
- @SneakyThrows
- private void prepareStorage() {
-
- storageService.storeObject(TenantContext.getTenantId(),
- RedactionStorageService.StorageIdUtils.getStorageId(TEST_DOSSIER_ID, TEST_FILE_ID, FileType.TABLES),
- new ClassPathResource("files/cv_service_empty_response.json").getInputStream());
- }
-
-
- @Test
- @SneakyThrows
- public void testMapping() {
-
- prepareStorage();
- ClassPathResource responseJson = new ClassPathResource("files/image_response.json");
- ImageServiceResponse imageServiceResponse = objectMapper.readValue(responseJson.getInputStream(), ImageServiceResponse.class);
-
- Map> images = new HashMap<>();
- imageServiceResponse.getData()
- .forEach(imageMetadata -> images.computeIfAbsent(imageMetadata.getPosition().getPageNumber(), x -> new ArrayList<>())
- .add(new ClassifiedImage(new Rectangle2D.Double(imageMetadata.getPosition().getX1(),
- imageMetadata.getPosition().getY1(),
- imageMetadata.getGeometry().getWidth(),
- imageMetadata.getGeometry().getHeight()),
- ImageType.valueOf(imageMetadata.getClassification().getLabel().toUpperCase(Locale.ROOT)),
- imageMetadata.isAlpha(),
- imageMetadata.getPosition().getPageNumber())));
-
- System.out.println("object");
- }
-
-
- @Test
- public void testPDFSegmentationWithComplexTable() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Spanning Cells.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
- assertThat(document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList())).isNotEmpty();
- TablePageBlock table = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList()).get(0);
- assertThat(table.getColCount()).isEqualTo(6);
- assertThat(table.getRowCount()).isEqualTo(13);
- assertThat(table.getRows().stream().mapToInt(List::size).sum()).isEqualTo(6 * 13);
- }
-
-
- @Test
- public void testTableExtraction() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Merge Table.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
- assertThat(document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList())).isNotEmpty();
- TablePageBlock firstTable = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList()).get(0);
- assertThat(firstTable.getColCount()).isEqualTo(8);
- assertThat(firstTable.getRowCount()).isEqualTo(1);
- TablePageBlock secondTable = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList()).get(1);
- assertThat(secondTable.getColCount()).isEqualTo(8);
- assertThat(secondTable.getRowCount()).isEqualTo(2);
- List> firstTableHeaderCells = firstTable.getRows().get(0).stream().map(Collections::singletonList).collect(Collectors.toList());
- assertThat(secondTable.getRows().stream().allMatch(row -> row.stream().map(Cell::getHeaderCells).toList().equals(firstTableHeaderCells))).isTrue();
- }
-
-
- @Test
- public void testMultiPageMetadataPropagation() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Merge Multi Page Table.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
- assertThat(document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList())).isNotEmpty();
- TablePageBlock firstTable = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList()).get(0);
- assertThat(firstTable.getColCount()).isEqualTo(9);
- assertThat(firstTable.getRowCount()).isEqualTo(5);
- TablePageBlock secondTable = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList()).get(1);
- assertThat(secondTable.getColCount()).isEqualTo(9);
- assertThat(secondTable.getRowCount()).isEqualTo(6);
- List> firstTableHeaderCells = firstTable.getRows().get(firstTable.getRowCount() - 1).stream().map(Cell::getHeaderCells).collect(Collectors.toList());
- assertThat(secondTable.getRows().stream().allMatch(row -> row.stream().map(Cell::getHeaderCells).toList().equals(firstTableHeaderCells))).isTrue();
- }
-
-
- @Test
- public void testHeaderCellsForRotatedTable() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/Minimal Examples/Rotated Table Headers.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
- assertThat(document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList())).isNotEmpty();
- TablePageBlock firstTable = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList()).get(0);
- assertThat(firstTable.getColCount()).isEqualTo(8);
- assertThat(firstTable.getRowCount()).isEqualTo(1);
- TablePageBlock secondTable = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).collect(Collectors.toList()).get(1);
- assertThat(secondTable.getColCount()).isEqualTo(8);
- assertThat(secondTable.getRowCount()).isEqualTo(6);
- List> firstTableHeaderCells = firstTable.getRows().get(0).stream().map(Collections::singletonList).collect(Collectors.toList());
- assertThat(secondTable.getRows().stream().allMatch(row -> row.stream().map(Cell::getHeaderCells).toList().equals(firstTableHeaderCells))).isTrue();
- }
-
-
- @Test
- public void testDoc56Page170() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/56 Fludioxonil_RAR_12_Volume_3CA_B-7_2018-02-21_Page170.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 4);
-
- validateTable(document, 0, 1, 1, 0, 0);
- validateTable(document, 1, 2, 2, 0, 0);
- validateTable(document, 2, 7, 20, 0, 140);
- validateTable(document, 3, 8, 31, 0, 170);
-
- }
-
-
- @Test
- public void testVV931175Page1() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/VV-931175_Page1.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 1);
-
- validateTable(document, 0, 8, 8, 0, 2);
-
- List> values = Arrays.asList(Arrays.asList("Annex point Reference within DAR/RAR",
- "Author, date",
- "Study title",
- "Analytical method Author, date, No.",
- "Technique, LOQ of the method, validated working range",
- "Method meets analytical validation criteria",
- "Remarks (in case validation criteria are not met)",
- "Acceptability of the method"),
- Arrays.asList("",
- "Part (a) Methods in soil, water, sediment, air and any additional matrices used in support of environmental fate studies",
- "Part (a) Methods in soil, water, sediment, air and any additional matrices used in support of environmental fate studies",
- "Part (a) Methods in soil, water, sediment, air and any additional matrices used in support of environmental fate studies",
- "Part (a) Methods in soil, water, sediment, air and any additional matrices used in support of environmental fate studies",
- "",
- "Part (a) Methods in soil, water, sediment, air and any additional matrices used in support of environmental fate studies",
- "Part (a) Methods in soil, water, sediment, air and any additional matrices used in support of environmental fate studies"),
- Arrays.asList("CA 7.1.2.1.1 DAR (2009)",
- "Evans P.G. 2001 TMJ4569B, VV-323245",
- "Azoxystrobin Laboratory Degradation Study in Three Soil Types, Sampled from Holland and the United Kingdom",
- "Method: RAM 269 Johnson R.I., Tummon O.J., Earl M. 1995 RJ1864B, VV-377731 Johnson R.I., Tummon O.J., Earl M. 1998 RAM 269/02, VV-124072 Johnson R.I., Tummon O.J., Earl M. 2000 RAM 269/03, VV-123986 Validation: Robinson N.J. 2001 TMJ4617B, VV-895845 in a Trial Carried",
- "LC-MS/MS LOQ: 0.01 mg/kg (R401553 (SYN50165 7), R402173 (SYN501114 )) or 0.02 mg/kg (azoxystrobin, R230310, R234886) Working range: 0.02-1.0 or 0.01-0.5 mg/kg (depending on analyte) Other supporting quantificati on methods: HPLC-UV GC-MSD",
- "Y",
- "N/A",
- "Y"));
-
- validateTable(document, 0, values);
-
- }
-
-
- @Test
- public void testDoc27Page6() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/27 A8637C - EU AIR3 - MCP Section 1 - Identity of the plant protection product_Page6.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 4);
-
- validateTable(document, 0, 3, 2, 0, 0);
- validateTable(document, 1, 3, 2, 0, 0);
- validateTable(document, 2, 3, 3, 0, 0);
- validateTable(document, 3, 3, 3, 0, 0);
-
- }
-
-
- @Test
- public void testDocA20622APartB9Page185() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/A20622A izRMS (CZ) fRR Part B9_Page185.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 2);
-
- validateTable(document, 0, 5, 5, 0, 23);
- validateTable(document, 1, 11, 9, 0, 36);
-
- }
-
-
- @Test
- public void testDocA20622APartB7Page123() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/A20622A izZRMS (CZ) fRR Part B7_Page123.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 6);
-
- validateTable(document, 0, 2, 1, 0, 0);
- validateTable(document, 1, 2, 1, 0, 0);
- validateTable(document, 2, 2, 5, 0, 0);
- validateTable(document, 3, 2, 5, 0, 0);
- validateTable(document, 4, 2, 4, 0, 0);
- validateTable(document, 5, 2, 1, 0, 0);
-
- }
-
-
- @Test
- public void testDoc77Page111() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/77 Pirimicarb_RAR_08_Volume_3CA_B-6_2017-12-04_Page11.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 3);
-
- validateTable(document, 0, 7, 9, 0, 0);
- validateTable(document, 1, 2, 1, 0, 0);
- validateTable(document, 2, 2, 10, 0, 0);
-
- }
-
-
- @Test
- public void testDoc95Page532() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/95 Trinexapac-ethyl_RAR_08_Volume_3CA_B-6_2018-01-10_Page532.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 1);
- validateTable(document, 0, 9, 9, 0, 0);
-
- }
-
-
- @Test
- public void testDoc52Page175() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/52 Fludioxonil_RAR_07_Volume_3CA_B-5_2018-02-21_Page175.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 1);
-
- validateTable(document, 0, 9, 5, 6, 0);
-
- }
-
-
- @Test
- public void testDoc52Page174() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/52 Fludioxonil_RAR_07_Volume_3CA_B-5_2018-02-21_Page174.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 1);
- validateTable(document, 0, 9, 6, 7, 0);
-
- }
-
-
- @Test
- public void testDoc19Page35() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/19 Chlorothalonil RAR 08 Volume 3CA B 6b metabolites Oct 2017_Page35.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 1);
- validateTable(document, 0, 10, 6, 0, 1);
-
- }
-
-
- @Test
- public void testDoc19Page161() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/19 Chlorothalonil RAR 08 Volume 3CA B 6b metabolites Oct 2017_Page161.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 2);
- validateTable(document, 0, 2, 2, 0, 0);
- validateTable(document, 1, 1, 1, 0, 0);
-
- }
-
-
- @Test
- public void testDoc47Page30() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource(
- "files/SinglePages/47 Cyprodinil - EU AIR3 - MCA Section 5 Supplement - Toxicological and metabolism studies on the active substance_Page30.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 2);
-
- validateTable(document, 0, 7, 8, 1, 0);
- validateTable(document, 1, 7, 8, 1, 0);
-
- }
-
-
- @Test
- public void testDoc49Page61() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource(
- "files/SinglePages/49 Cyprodinil - EU AIR3 - MCA Section 8 Supplement - Ecotoxicological studies on the active substance_Page61.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 2);
-
- validateTable(document, 0, 4, 17, 0, 0);
- validateTable(document, 1, 7, 12, 0, 0);
-
- }
-
-
- @Test
- public void testDoc81Page54() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/81 Pirimicarb_RAR_20_Volume_3CP_A10788A (_Pirimor_)_B-9_2017-12-04_Page54.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 2);
-
- validateTable(document, 0, 5, 14, 4, 0);
- validateTable(document, 1, 7, 12, 0, 0);
-
- }
-
-
- @Test
- public void testDoc88Page134() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/85 Pydiflumetofen_DAR_08_Volume_3CA_B-6_2017-07-26_Page134.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 2);
-
- validateTable(document, 0, 5, 17, 3, 0);
- validateTable(document, 1, 5, 16, 2, 0);
-
- }
-
-
- @Test
- public void testDocThiabendazolePage18() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/Thiabendazole DAR Addendum for ED_April_2020_Page18.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 4);
-
- validateTable(document, 0, 4, 4, 0, 0);
- validateTable(document, 1, 1, 1, 0, 0);
- validateTable(document, 2, 2, 3, 0, 0);
- validateTable(document, 3, 1, 1, 0, 0);
-
- }
-
-
- @Test
- public void testDoc15Page18() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/15 - Pretilachlor - Acute Oral Toxicity (Up and Down Procedure) - Rat_Page18.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 1);
-
- validateTable(document, 0, 11, 8, 0, 0);
-
- }
-
-
- @Test
- public void testDoc28Page23() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource(
- "files/SinglePages/28 A8637C - EU AIR3 - MCP Section 10 - Ecotoxicological studies on the plant protection product_Page23.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 2);
-
- validateTable(document, 0, 6, 8, 0, 2);
- validateTable(document, 1, 6, 8, 0, 1);
-
- }
-
-
- @Test
- public void testDoc24Page17() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/24 - SYN549522 - Acute Oral Toxicity - Rats_Page17.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 1);
-
- validateTable(document, 0, 9, 5, 2, 0);
-
- }
-
-
- @Test
- public void testDoc30Page5() throws IOException {
-
- prepareStorage();
- ClassPathResource pdfFileResource = new ClassPathResource("files/SinglePages/30 - Dicamba - Acute Oral Toxicity - Rats_Page5.pdf");
-
- ClassificationDocument document = pdfSegmentationService.parseDocument(TEST_DOSSIER_ID, TEST_FILE_ID, pdfFileResource.getInputStream(), null);
-
- validateTableSize(document, 1);
-
- validateTable(document, 0, 3, 5, 0, 0);
-
- }
-
-
- private void validateTable(ClassificationDocument document, int tableIndex, int colCount, int rowCount, int emptyCellsCountCorrect, int emptyCellsCountIncorrect) {
-
- TablePageBlock table = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).toList().get(tableIndex);
- List> rows = table.getRows();
- int emptyCellsFoundFound = rows.stream().flatMap(List::stream).toList().stream().filter(f -> f.toString().equals("")).toList().size();
-
- assertThat(emptyCellsFoundFound).isEqualTo(emptyCellsCountCorrect + emptyCellsCountIncorrect);
-
- assertThat(table.getColCount()).isEqualTo(colCount);
- assertThat(table.getRowCount()).isEqualTo(rowCount);
-
- }
-
-
- private void validateTable(ClassificationDocument document, int tableIndex, List> values) {
-
- TablePageBlock table = document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).toList().get(tableIndex);
- List> rows = table.getRows();
-
- List| rowsFlattened = rows.stream().flatMap(List::stream).toList();
- List valuesFlattened = values.stream().flatMap(List::stream).toList();
-
- for (int i = 0; i < valuesFlattened.size(); i++) {
- Cell cell = rowsFlattened.get(i);
- String value = valuesFlattened.get(i);
- assertThat(cell.toString()).isEqualTo(value);
- }
-
- }
-
-
- private void validateTableSize(ClassificationDocument document, int tableSize) {
-
- assertThat(document.getSections().stream().flatMap(paragraph -> paragraph.getTables().stream()).toList().size()).isEqualTo(tableSize);
-
- }
-
-}
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/stringmatching/StringMatchingPerformanceTest.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/stringmatching/StringMatchingPerformanceTest.java
index d4c62f21..8b7983d7 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/stringmatching/StringMatchingPerformanceTest.java
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/stringmatching/StringMatchingPerformanceTest.java
@@ -3,6 +3,7 @@ package com.iqser.red.service.redaction.v1.server.stringmatching;
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import java.util.HashSet;
+import java.util.Locale;
import java.util.Set;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@@ -25,7 +26,7 @@ public class StringMatchingPerformanceTest {
@SneakyThrows
public void testStringPerformance() {
- String text = IOUtils.toString(new ClassPathResource("stringmatching/hamlet.txt").getInputStream()).toLowerCase();
+ String text = IOUtils.toString(new ClassPathResource("stringmatching/hamlet.txt").getInputStream()).toLowerCase(Locale.ROOT);
Set dictionary = IOUtils.readLines(new ClassPathResource("stringmatching/names.txt").getInputStream())
.stream()
.map(String::toLowerCase)
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl
index 173edb8f..74dcf67d 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/acceptance_rules.drl
@@ -40,7 +40,11 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Bo
import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
global Document document
global EntityCreationService entityCreationService
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_rules.drl
index d6c02c14..4e93f9da 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_rules.drl
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/all_rules.drl
@@ -40,7 +40,12 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Bo
import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType
+import com.iqser.red.service.redaction.v1.server.document.utils.RedactionSearchUtility
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
global Document document
global EntityCreationService entityCreationService
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/documine_flora.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/documine_flora.drl
index 483eefd1..90859c3b 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/documine_flora.drl
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/documine_flora.drl
@@ -41,6 +41,10 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Bo
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntitiesAdapter;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType
+import com.iqser.red.service.redaction.v1.server.document.utils.RedactionSearchUtility
global Document document
global EntityCreationService entityCreationService
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/manual_redaction_rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/manual_redaction_rules.drl
index eaf2ed1b..e2b6c72b 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/manual_redaction_rules.drl
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/manual_redaction_rules.drl
@@ -34,7 +34,10 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.en
import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntitiesAdapter;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType;
global Document document
global EntityCreationService entityCreationService
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl
index 49eae02b..7d792328 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules.drl
@@ -40,7 +40,12 @@ import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Bo
import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.entity.RedactionEntity;
import com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.Boundary;
import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility
+import com.iqser.red.service.redaction.v1.server.document.graph.nodes.ImageType
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType
+import com.iqser.red.service.redaction.v1.server.document.utils.RedactionSearchUtility
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
global Document document
global EntityCreationService entityCreationService
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl
index 7a451fa1..b5efa933 100644
--- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl
+++ b/redaction-service-v1/redaction-service-server-v1/src/test/resources/drools/rules_v2.drl
@@ -35,7 +35,11 @@ import com.iqser.red.service.redaction.v1.server.redaction.adapter.NerEntities;
import java.util.stream.Collectors;
import java.util.Collection;
import java.util.stream.Stream;
-import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility;
+import com.iqser.red.service.redaction.v1.server.layoutparsing.document.utils.RedactionSearchUtility
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.MatchedRule
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.EntityType
+import com.iqser.red.service.redaction.v1.server.document.graph.Boundary
+import com.iqser.red.service.redaction.v1.server.document.graph.entity.RedactionEntity;
global Document document
global EntityCreationService entityCreationService
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Documine/Flora/ProblemDocs/S37Struktur.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Documine/Flora/ProblemDocs/S37Struktur.pdf
deleted file mode 100644
index 8123bf3c..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Documine/Flora/ProblemDocs/S37Struktur.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Merge Multi Page Table.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Merge Multi Page Table.pdf
deleted file mode 100644
index feba9632..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Merge Multi Page Table.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Merge Table.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Merge Table.pdf
deleted file mode 100644
index 64e29896..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Merge Table.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Rotated Table Headers.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Rotated Table Headers.pdf
deleted file mode 100644
index f4512499..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Rotated Table Headers.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Spanning Cells.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Spanning Cells.pdf
deleted file mode 100644
index db5abbcd..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/Minimal Examples/Spanning Cells.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/15 - Pretilachlor - Acute Oral Toxicity (Up and Down Procedure) - Rat_Page18.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/15 - Pretilachlor - Acute Oral Toxicity (Up and Down Procedure) - Rat_Page18.pdf
deleted file mode 100644
index cce8d6fd..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/15 - Pretilachlor - Acute Oral Toxicity (Up and Down Procedure) - Rat_Page18.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/19 Chlorothalonil RAR 08 Volume 3CA B 6b metabolites Oct 2017_Page161.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/19 Chlorothalonil RAR 08 Volume 3CA B 6b metabolites Oct 2017_Page161.pdf
deleted file mode 100644
index e61a6605..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/19 Chlorothalonil RAR 08 Volume 3CA B 6b metabolites Oct 2017_Page161.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/19 Chlorothalonil RAR 08 Volume 3CA B 6b metabolites Oct 2017_Page35.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/19 Chlorothalonil RAR 08 Volume 3CA B 6b metabolites Oct 2017_Page35.pdf
deleted file mode 100644
index 82b928fb..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/19 Chlorothalonil RAR 08 Volume 3CA B 6b metabolites Oct 2017_Page35.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/24 - SYN549522 - Acute Oral Toxicity - Rats_Page17.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/24 - SYN549522 - Acute Oral Toxicity - Rats_Page17.pdf
deleted file mode 100644
index 9fa78dd9..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/24 - SYN549522 - Acute Oral Toxicity - Rats_Page17.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/27 A8637C - EU AIR3 - MCP Section 1 - Identity of the plant protection product_Page6.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/27 A8637C - EU AIR3 - MCP Section 1 - Identity of the plant protection product_Page6.pdf
deleted file mode 100644
index 8acd8dd7..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/27 A8637C - EU AIR3 - MCP Section 1 - Identity of the plant protection product_Page6.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/28 A8637C - EU AIR3 - MCP Section 10 - Ecotoxicological studies on the plant protection product_Page23.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/28 A8637C - EU AIR3 - MCP Section 10 - Ecotoxicological studies on the plant protection product_Page23.pdf
deleted file mode 100644
index 565ee200..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/28 A8637C - EU AIR3 - MCP Section 10 - Ecotoxicological studies on the plant protection product_Page23.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/30 - Dicamba - Acute Oral Toxicity - Rats_Page5.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/30 - Dicamba - Acute Oral Toxicity - Rats_Page5.pdf
deleted file mode 100644
index f78a8f28..00000000
Binary files a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/30 - Dicamba - Acute Oral Toxicity - Rats_Page5.pdf and /dev/null differ
diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/47 Cyprodinil - EU AIR3 - MCA Section 5 Supplement - Toxicological and metabolism studies on the active substance_Page30.pdf b/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/47 Cyprodinil - EU AIR3 - MCA Section 5 Supplement - Toxicological and metabolism studies on the active substance_Page30.pdf
deleted file mode 100644
index cc84da28..00000000
--- a/redaction-service-v1/redaction-service-server-v1/src/test/resources/files/SinglePages/47 Cyprodinil - EU AIR3 - MCA Section 5 Supplement - Toxicological and metabolism studies on the active substance_Page30.pdf
+++ /dev/null
@@ -1,1099 +0,0 @@
-%PDF-1.5
%
-1 0 obj
<>
endobj
2 0 obj
<>stream
-
-
-
-
- 2023-04-21T14:28:39+02:00
- 2023-04-21T14:28:39+02:00
- 2023-04-21T14:28:39+02:00
- Microsoft Office Word
- application/pdf
-
-
- Cyprodinil
-
-
-
-
- Syngenta
-
-
- uuid:1c69408b-4dd4-495d-bb41-1e73600b9cb8
- uuid:aa570980-254b-4193-96a2-75439a4e6938
- Aspose.Words for Java 16.7.0.0
- CGA219417_11532
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-endstream
endobj
3 0 obj
<>
endobj
5 0 obj
<>/MediaBox[0 0 595.45001221 841.70001221]/Parent 3 0 R/Resources<>>>/Type/Page>>
endobj
8 0 obj
<>stream
-1 0 0 -1 0 841.70001221 cm q 1 0 0 1 70.90000153 35.45000076 cm -70.90000153 0 m 524.54998779 0 l 524.54998779 58.04700089 l -70.90000153 58.04700089 l h W n q -1 -1 m 121.5 -1 l 121.5 31.39800262 l -1 31.39800262 l h W n BT /FAAAAH 6 Tf 1 0 0 -1 0 5.62799978 Tm 0 g (Annex)Tj ( )Tj 18.68000031 0 Td (to)Tj ( )Tj 6.67099953 0 Td (Regulation)Tj ( )Tj 30.35500145 0 Td (283/2013)Tj ET Q q 1 0 0 1 120.5 0 cm -1 -1 m 207.75 -1 l 207.75 31.39800262 l -1 31.39800262 l h W n BT /FAAAAH 8 Tf 1 0 0 -1 85.58999634 7.50400019 Tm 0 g (Cyprodinil)Tj ET Q q 1 0 0 1 327.25 0 cm -1 -1 m 141.94999695 -1 l 141.94999695 31.39800262 l -1 31.39800262 l h W n BT /FAAAAH 8 Tf 1 0 0 -1 37.78900146 7.50400019 Tm 0 g (M-CA,)Tj 22.66399765 0 Td ( )Tj 2.22299957 0 Td (Section)Tj ( )Tj 28.9070015 0 Td (5)Tj ( )Tj 6.67199707 0 Td (Supplement)Tj ET q 1 0 0 1 0 15.19900036 cm BT 1 0 0 -1 132.05200195 7.50400019 Tm (30)Tj ET Q Q q 0 G 1.5 w 0 32.64800262 m 468.20001221 32.64800262 l S Q q 0 G 0.75 w 0 30.77300262 m 468.20001221 30.77300262 l S Q q 1 0 0 1 0 33.39799881 cm Q Q q 1 0 0 1 70.90000153 797.05102539 cm -70.90000153 0 m 524.54998779 0 l 524.54998779 9.19900036 l -70.90000153 9.19900036 l h W n BT /FAAAAH 8 Tf 1 0 0 -1 0 7.50400019 Tm 0 g (Syngenta)Tj ( )Tj 36.02799988 0 Td ()Tj ( )Tj 6.67200089 0 Td (8)Tj 4.4489975 0 Td ( )Tj 2.22300339 0 Td (October)Tj ( )Tj 30.68000031 0 Td (2015)Tj ( )Tj 20.01999664 0 Td (updated)Tj 28.9180069 0 Td ( )Tj 2.22299194 0 Td (20/5/16,)Tj ( )Tj 31.13700867 0 Td (3/2/17,)Tj ( )Tj 26.68798828 0 Td (7/4/17,)Tj 24.4650116 0 Td ( )Tj 2.22299194 0 Td (8/6/17)Tj 181.34700012 0 Td (CGA219417_11532)Tj ET Q q 1 0 0 1 70.90000153 93.49700165 cm q 1 0 0 1 0 12.64900017 cm BT /FAAAIE 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (Statistical)Tj ( )Tj (analysis:)Tj /FAAACA 11 Tf 90.14299774 0 Td ( )Tj (None)Tj 29.32600403 0 Td ( )Tj ()Tj ( )Tj (see)Tj 25.0450058 0 Td ( )Tj (Evaluation)Tj 50.4019928 0 Td ( )Tj (Criteria)Tj ( )Tj (below.)Tj ET Q q 1 0 0 1 0 37.29800034 cm BT /FAAAIE 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (Evaluation)Tj ( )Tj (criteria:)Tj 92.56600189 0 Td ( )Tj /FAAACA 11 Tf (A)Tj ( )Tj (test)Tj ( )Tj (item)Tj ( )Tj (is)Tj ( )Tj (considered)Tj ( )Tj (as)Tj ( )Tj (a)Tj ( )Tj (mutagen)Tj ( )Tj (if)Tj ( )Tj (a)Tj ( )Tj (biologically)Tj ( )Tj (relevant)Tj ( )Tj (increase)Tj ( )Tj (in)Tj ( )Tj (the)Tj 348.51699829 0 Td ( )Tj -441.08300781 -12.64900017 TD (number)Tj ( )Tj (of)Tj ( )Tj (revertants)Tj ( )Tj (exceeding)Tj ( )Tj (the)Tj ( )Tj (threshold)Tj 198.84199524 0 TD ( )Tj (of)Tj 11.91300964 0 Td ( )Tj (twice)Tj ( )Tj (the)Tj ( )Tj (colony)Tj ( )Tj (count)Tj 102.63500977 0 Td ( )Tj (of)Tj ( )Tj (the)Tj ( )Tj (corresponding)Tj ( )Tj (solvent)Tj ( )Tj -313.39001465 -12.64900017 TD (control)Tj ( )Tj (is)Tj 41.24499893 0 TD ( )Tj (observed.)Tj ET Q q 1 0 0 1 0 87.24500275 cm BT /FAAACA 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (A)Tj ( )Tj (dose)Tj ( )Tj 33.60699844 0 Td (dependent)Tj ( )Tj (increase)Tj ( )Tj (is)Tj 94.06900024 0 Td ( )Tj (considered)Tj ( )Tj (biologically)Tj ( )Tj (relevant)Tj ( )Tj (if)Tj ( )Tj (the)Tj ( )Tj (threshold)Tj 213.20901489 0 Td ( )Tj (is)Tj 10.0869751 0 Td ( )Tj (exceeded)Tj 43.66201782 0 Td ( )Tj (at)Tj ( )Tj (more)Tj 36.04000854 0 Td ( )Tj (than)Tj ( )Tj -430.67401123 -12.64900017 TD (one)Tj ( )Tj (concentration.)Tj ( )Tj ET Q q 1 0 0 1 0 124.54299927 cm BT /FAAACA 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (An)Tj ( )Tj (increase)Tj ( )Tj (exceeding)Tj ( )Tj (the)Tj ( )Tj (threshold)Tj ( )Tj (at)Tj 170.12199402 0 Td ( )Tj (only)Tj ( )Tj (one)Tj ( )Tj (concentration)Tj ( )Tj (is)Tj ( )Tj (judged)Tj 146.32402039 0 Td ( )Tj (as)Tj ( )Tj (biologically)Tj ( )Tj (relevant)Tj ( )Tj (if)Tj 114.84899902 0 Td ( )Tj -431.29501343 -12.64900017 TD (reproduced)Tj ( )Tj (in)Tj ( )Tj (an)Tj 73.91100311 0 TD ( )Tj (independent)Tj ( )Tj (second)Tj ( )Tj (experiment.)Tj ET Q q 1 0 0 1 0 161.84100342 cm BT /FAAACA 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (A)Tj ( )Tj (dose)Tj ( )Tj 33.60699844 0 Td (dependent)Tj ( )Tj (increase)Tj ( )Tj (in)Tj 95.28800964 0 Td ( )Tj (the)Tj 16.18798828 0 Td ( )Tj (number)Tj ( )Tj (of)Tj 48.26501465 0 Td ( )Tj (revertant)Tj 41.83499146 0 Td ( )Tj (colonies)Tj ( )Tj (below)Tj ( )Tj (the)Tj 85.22801208 0 Td ( )Tj (threshold)Tj ( )Tj (is)Tj ( )Tj (regarded)Tj ( )Tj (as)Tj ( )Tj (an)Tj 120.04299927 0 Td ( )Tj -440.45401001 -12.64900017 TD (indication)Tj ( )Tj (of)Tj ( )Tj (a)Tj ( )Tj (mutagenic)Tj ( )Tj (potential)Tj ( )Tj (if)Tj 162.80700684 0 TD ( )Tj (reproduced)Tj ( )Tj (in)Tj ( )Tj (an)Tj ( )Tj (independent)Tj ( )Tj (second)Tj ( )Tj (experiment.)Tj ( )Tj (However,)Tj ( )Tj -162.80700684 -12.64900017 TD (whenever)Tj ( )Tj (the)Tj ( )Tj (colony)Tj 91.62999725 0 TD ( )Tj (counts)Tj ( )Tj (remain)Tj ( )Tj (within)Tj ( )Tj (the)Tj 111.80899811 0 Td ( )Tj (historical)Tj ( )Tj (range)Tj ( )Tj (of)Tj 82.77401733 0 Td ( )Tj (negative)Tj 40.00897217 0 Td ( )Tj (and)Tj 18.63201904 0 Td ( )Tj (solvent)Tj ( )Tj (controls)Tj ( )Tj (such)Tj 95.62600708 0 Td ( )Tj (an)Tj ( )Tj -440.48001099 -12.64899826 TD (increase)Tj ( )Tj (is)Tj 46.11600113 0 TD ( )Tj (not)Tj ( )Tj (considered)Tj ( )Tj (biologically)Tj ( )Tj (relevant.)Tj ET Q q 1 0 0 1 0 224.43699646 cm BT /FAAAIE 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (RESULTS)Tj ( )Tj (AND)Tj ( )Tj (DISCUSSION)Tj ET Q q 1 0 0 1 0 249.08599854 cm BT /FAAAIE 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (Preliminary)Tj ( )Tj (cytotoxicity)Tj ( )Tj (assay:)Tj /FAAACA 11 Tf ( )Tj (Not)Tj ( )Tj (performed.)Tj ET Q q 1 0 0 1 0 273.73498535 cm BT /FAAACA 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (Mutagenicity)Tj ( )Tj (assay:)Tj ( )Tj (The)Tj 110.88600159 0 Td ( )Tj (test)Tj ( )Tj (item)Tj 40.32600403 0 Td ( )Tj (Cyprodinil)Tj ( )Tj (tech.)Tj ( )Tj (was)Tj ( )Tj (assessed)Tj ( )Tj (for)Tj ( )Tj (its)Tj ( )Tj (potential)Tj ( )Tj (to)Tj ( )Tj (induce)Tj 247.45098877 0 Td ( )Tj (gene)Tj 23.51501465 0 Td ( )Tj -422.17800903 -12.64900017 TD (mutations)Tj ( )Tj (in)Tj ( )Tj (the)Tj ( )Tj (plate)Tj ( )Tj (incorporation)Tj ( )Tj (test)Tj ( )Tj (\(experiment)Tj ( )Tj (I\))Tj ( )Tj (and)Tj ( )Tj (the)Tj ( )Tj (pre-incubation)Tj ( )Tj (test)Tj ( )Tj (\(experiment)Tj 416.64001465 0 TD ( )Tj (II,)Tj ( )Tj (IIA,)Tj ( )Tj -416.64001465 -12.64900017 TD (IIB\))Tj ( )Tj (using)Tj 44.9129982 0 TD ( )Tj (Salmonella)Tj 52.23900223 0 Td ( )Tj (typhimurium)Tj 60.19399261 0 Td ( )Tj (strains)Tj 31.4690094 0 Td ( )Tj (TA)Tj ( )Tj (1535,)Tj ( )Tj (TA)Tj 62.32600403 0 Td ( )Tj (1537,)Tj ( )Tj (TA)Tj ( )Tj (98,)Tj ( )Tj (and)Tj 80.04499817 0 Td ( )Tj (TA)Tj ( )Tj (100,)Tj ( )Tj (and)Tj ( )Tj (the)Tj 74.23300171 0 Td ( )Tj (Escherichia)Tj ( )Tj -405.41900635 -12.64899826 TD (coli)Tj ( )Tj (strains)Tj ( )Tj (WP2)Tj 72.71399689 0 TD ( )Tj (uvrA)Tj ( )Tj (pKM)Tj ( )Tj (101)Tj 70.58200836 0 Td ( )Tj (and)Tj 18.63198853 0 Td ( )Tj (WP2)Tj ( )Tj (pKM)Tj ( )Tj (101.)Tj ET Q q 1 0 0 1 0 336.33099365 cm BT /FAAACA 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (Reduced)Tj ( )Tj (background)Tj ( )Tj (growth)Tj 127.07499695 0 Td ( )Tj (was)Tj 19.85700989 0 Td ( )Tj (observed)Tj 42.45799255 0 Td ( )Tj (at)Tj ( )Tj (the)Tj ( )Tj (following)Tj 72.40098572 0 Td ( )Tj (concentrations)Tj 66.89202881 0 Td ( )Tj (\(g/plate\):)Tj ET Q q 1 0 0 1 -3.5 360.98001099 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (Strain)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 142.1499939 -0.5 l 142.1499939 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 57.29499817 8.40200043 Tm 0 g (Exp.)Tj 17.75800323 0 Td ( )Tj (I)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 142.1499939 -0.5 l 142.1499939 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 55.54299927 8.40200043 Tm 0 g (Exp.)Tj 17.75800323 0 Td ( )Tj (II)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 14.59399986 8.40200043 Tm 0 g (Exp.)Tj 17.75800133 0 Td ( )Tj (IIA)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 14.74199963 8.40200043 Tm 0 g (Exp.)Tj ( )Tj (IIB)Tj ET Q Q q 1 0 0 1 0 10.84899998 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 7.046 8.40200043 Tm 0 g (without)Tj ( )Tj (S9)Tj ( )Tj (mix)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 8.59700012 8.40200043 Tm 0 g (with)Tj ( )Tj (S9)Tj ( )Tj (mix)Tj ( )Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 7.84600019 8.40200043 Tm 0 g (without)Tj 29.50500107 0 Td ( )Tj (S9)Tj 11.75499725 0 Td ( )Tj (mix)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 7.79699993 8.40200043 Tm 0 g (with)Tj ( )Tj (S9)Tj ( )Tj (mix)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 2.34599996 8.40200043 Tm 0 g (without)Tj ( )Tj 31.75500107 0 Td (S9)Tj 9.50499725 0 Td ( )Tj (mix)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 2.24600005 8.40200043 Tm 0 g (without)Tj ( )Tj (S9)Tj ( )Tj (mix)Tj ET Q Q Q q 1 0 0 1 0 21.69799995 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (TA)Tj ( )Tj (1535)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.5510006 8.40200043 Tm 0 g (333)Tj ( )Tj 15.74999809 0 Td (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.85099983 8.40200043 Tm 0 g (333)Tj ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 17.35099983 8.40200043 Tm 0 g (333)Tj ( )Tj 15.75000191 0 Td (-)Tj 2.99699783 0 Td ( )Tj (5000)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.05099964 8.40200043 Tm 0 g (333)Tj 13.50000095 0 Td ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 1 0 0 1 0 32.54700089 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (TA)Tj ( )Tj (1537)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.5510006 8.40200043 Tm 0 g (333)Tj ( )Tj 15.74999809 0 Td (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.85099983 8.40200043 Tm 0 g (333)Tj ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 17.35099983 8.40200043 Tm 0 g (100)Tj ( )Tj 15.75000191 0 Td (-)Tj 2.99699783 0 Td ( )Tj (5000)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.05099964 8.40200043 Tm 0 g (100)Tj 13.50000095 0 Td ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.35099983 8.40200043 Tm 0 g (33)Tj ( )Tj (-)Tj ( )Tj (333)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 14.0010004 8.40200043 Tm 0 g (100)Tj ( )Tj (-)Tj ( )Tj (333)Tj ET Q Q Q q 1 0 0 1 0 43.39599991 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (TA)Tj ( )Tj (98)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.5510006 8.40200043 Tm 0 g (333)Tj ( )Tj 15.74999809 0 Td (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.85099983 8.40200043 Tm 0 g (333)Tj ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 17.35099983 8.40200043 Tm 0 g (100)Tj ( )Tj 15.75000191 0 Td (-)Tj 2.99699783 0 Td ( )Tj (5000)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.05099964 8.40200043 Tm 0 g (100)Tj 13.50000095 0 Td ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 1 0 0 1 0 54.24499893 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (TA)Tj ( )Tj (100)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.5510006 8.40200043 Tm 0 g (333)Tj ( )Tj 15.74999809 0 Td (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.85099983 8.40200043 Tm 0 g (333)Tj ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 17.35099983 8.40200043 Tm 0 g (100)Tj ( )Tj 15.75000191 0 Td (-)Tj 2.99699783 0 Td ( )Tj (5000)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.05099964 8.40200043 Tm 0 g (100)Tj 13.50000095 0 Td ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 1 0 0 1 0 65.09400177 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (WP2)Tj ( )Tj (uvrA)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 34.79999924 8.40200043 Tm 0 g (/)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 30.10000038 8.40200043 Tm 0 g (/)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 17.35099983 8.40200043 Tm 0 g (333)Tj ( )Tj 15.75000191 0 Td (-)Tj 2.99699783 0 Td ( )Tj (5000)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.05099964 8.40200043 Tm 0 g (333)Tj 13.50000095 0 Td ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 1 0 0 1 0 75.94300079 cm q -0.75 -0.5 m 61 -0.5 l 61 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (WP2)Tj ( )Tj (uvrA)Tj ( )Tj 10.34899902 TL (pKM101)' ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.5510006 8.40200043 Tm 0 g (333)Tj ( )Tj 15.74999809 0 Td (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.85099983 8.40200043 Tm 0 g (333)Tj ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 17.35099983 8.40200043 Tm 0 g (333)Tj ( )Tj 15.75000191 0 Td (-)Tj 2.99699783 0 Td ( )Tj (5000)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.05099964 8.40200043 Tm 0 g (333)Tj 13.50000095 0 Td ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 0 G 0.5 w 0 0.5 m 0 97.14099884 l S Q q 0 G 0.5 w 60.25 0.5 m 60.25 10.84899998 l S Q q 0 G 0.5 w 60.25 11.34899998 m 60.25 21.69799995 l S Q q 0 G 0.5 w 60.25 22.19799995 m 60.25 32.54700089 l S Q q 0 G 0.5 w 60.25 33.04700089 m 60.25 43.39599991 l S Q q 0 G 0.5 w 60.25 43.89599991 m 60.25 54.24499893 l S Q q 0 G 0.5 w 60.25 54.74499893 m 60.25 65.09400177 l S Q q 0 G 0.5 w 60.25 65.59400177 m 60.25 75.94300079 l S Q q 0 G 0.5 w 60.25 76.44300079 m 60.25 97.14099884 l S Q q 0 G 0.5 w 201.6499939 0.5 m 201.6499939 10.84899998 l S Q q 0 G 0.5 w 201.6499939 11.34899998 m 201.6499939 21.69799995 l S Q q 0 G 0.5 w 201.6499939 22.19799995 m 201.6499939 32.54700089 l S Q q 0 G 0.5 w 201.6499939 33.04700089 m 201.6499939 43.39599991 l S Q q 0 G 0.5 w 201.6499939 43.89599991 m 201.6499939 54.24499893 l S Q q 0 G 0.5 w 201.6499939 54.74499893 m 201.6499939 65.09400177 l S Q q 0 G 0.5 w 201.6499939 65.59400177 m 201.6499939 75.94300079 l S Q q 0 G 0.5 w 201.6499939 76.44300079 m 201.6499939 97.14099884 l S Q q 0 G 0.5 w 343.04998779 0.5 m 343.04998779 10.84899998 l S Q q 0 G 0.5 w 343.04998779 11.34899998 m 343.04998779 21.69799995 l S Q q 0 G 0.5 w 343.04998779 22.19799995 m 343.04998779 32.54700089 l S Q q 0 G 0.5 w 343.04998779 33.04700089 m 343.04998779 43.39599991 l S Q q 0 G 0.5 w 343.04998779 43.89599991 m 343.04998779 54.24499893 l S Q q 0 G 0.5 w 343.04998779 54.74499893 m 343.04998779 65.09400177 l S Q q 0 G 0.5 w 343.04998779 65.59400177 m 343.04998779 75.94300079 l S Q q 0 G 0.5 w 343.04998779 76.44300079 m 343.04998779 97.14099884 l S Q q 0 G 0.5 w 409.04998779 0.5 m 409.04998779 10.84899998 l S Q q 0 G 0.5 w 409.04998779 11.34899998 m 409.04998779 21.69799995 l S Q q 0 G 0.5 w 409.04998779 22.19799995 m 409.04998779 32.54700089 l S Q q 0 G 0.5 w 409.04998779 33.04700089 m 409.04998779 43.39599991 l S Q q 0 G 0.5 w 409.04998779 43.89599991 m 409.04998779 54.24499893 l S Q q 0 G 0.5 w 409.04998779 54.74499893 m 409.04998779 65.09400177 l S Q q 0 G 0.5 w 409.04998779 65.59400177 m 409.04998779 75.94300079 l S Q q 0 G 0.5 w 409.04998779 76.44300079 m 409.04998779 97.14099884 l S Q q 0 G 0.5 w 474.84997559 0.5 m 474.84997559 97.14099884 l S Q q 0 G 0.5 w 135.6499939 11.34899998 m 135.6499939 21.69799995 l S Q q 0 G 0.5 w 135.6499939 22.19799995 m 135.6499939 32.54700089 l S Q q 0 G 0.5 w 135.6499939 33.04700089 m 135.6499939 43.39599991 l S Q q 0 G 0.5 w 135.6499939 43.89599991 m 135.6499939 54.24499893 l S Q q 0 G 0.5 w 135.6499939 54.74499893 m 135.6499939 65.09400177 l S Q q 0 G 0.5 w 135.6499939 65.59400177 m 135.6499939 75.94300079 l S Q q 0 G 0.5 w 135.6499939 76.44300079 m 135.6499939 97.14099884 l S Q q 0 G 0.5 w 278.6499939 11.34899998 m 278.6499939 21.69799995 l S Q q 0 G 0.5 w 278.6499939 22.19799995 m 278.6499939 32.54700089 l S Q q 0 G 0.5 w 278.6499939 33.04700089 m 278.6499939 43.39599991 l S Q q 0 G 0.5 w 278.6499939 43.89599991 m 278.6499939 54.24499893 l S Q q 0 G 0.5 w 278.6499939 54.74499893 m 278.6499939 65.09400177 l S Q q 0 G 0.5 w 278.6499939 65.59400177 m 278.6499939 75.94300079 l S Q q 0 G 0.5 w 278.6499939 76.44300079 m 278.6499939 97.14099884 l S Q q 0 G 0.5 w -0.25 0.25 m 475.09997559 0.25 l S Q q 0 G 0.5 w 0.25 11.09899998 m 474.59997559 11.09899998 l S Q q 0 G 0.5 w 0.25 21.94799995 m 474.59997559 21.94799995 l S Q q 0 G 0.5 w 0.25 32.79700089 m 474.59997559 32.79700089 l S Q q 0 G 0.5 w 0.25 43.64599991 m 474.59997559 43.64599991 l S Q q 0 G 0.5 w 0.25 54.49499893 m 474.59997559 54.49499893 l S Q q 0 G 0.5 w 0.25 65.34400177 m 474.59997559 65.34400177 l S Q q 0 G 0.5 w 0.25 76.19300079 m 474.59997559 76.19300079 l S Q q 0 G 0.5 w -0.25 97.39099884 m 475.09997559 97.39099884 l S Q Q q 1 0 0 1 0 458.6210022 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (/)Tj ( )Tj (=)Tj ( )Tj (no)Tj ( )Tj (reduced)Tj ( )Tj (background)Tj ( )Tj (growth)Tj ( )Tj (observed;)Tj 161.52900696 0 Td ( )Tj (n.p.)Tj ( )Tj (=)Tj 23.07598877 0 Td ( )Tj (not)Tj ( )Tj (performed)Tj ET Q q 1 0 0 1 0 468.97000122 cm Q q 1 0 0 1 0 481.61898804 cm BT /FAAACA 11 Tf 1 0 0 -1 0 10.27000046 Tm 0 g (Distinct)Tj ( )Tj (toxic)Tj 59.57699966 0 Td ( )Tj (effects,)Tj ( )Tj (evident)Tj ( )Tj (as)Tj ( )Tj (a)Tj ( )Tj (reduction)Tj ( )Tj (in)Tj ( )Tj (the)Tj ( )Tj (number)Tj ( )Tj (of)Tj ( )Tj (revertants)Tj ( )Tj (\(below)Tj ( )Tj (the)Tj ( )Tj (indication)Tj 351.86901855 0 Td ( )Tj (factor)Tj 28.39697266 0 Td ( )Tj (of)Tj 11.9130249 0 Td ( )Tj -451.75601196 -12.64900017 TD (0.5\))Tj ( )Tj (were)Tj ( )Tj (observed)Tj ( )Tj (at)Tj ( )Tj (the)Tj ( )Tj (following)Tj 156.39399719 0 TD ( )Tj (concentrations)Tj ( )Tj (\(g/plate\):)Tj ET Q q 1 0 0 1 -3.5 518.91699219 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (Strain)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 142.1499939 -0.5 l 142.1499939 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 57.29499817 8.40200043 Tm 0 g (Exp.)Tj 17.75800323 0 Td ( )Tj (I)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 142.1499939 -0.5 l 142.1499939 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 55.54299927 8.40200043 Tm 0 g (Exp.)Tj 17.75800323 0 Td ( )Tj (II)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 14.59399986 8.40200043 Tm 0 g (Exp.)Tj 17.75800133 0 Td ( )Tj (IIA)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 14.74199963 8.40200043 Tm 0 g (Exp.)Tj ( )Tj (IIB)Tj ET Q Q q 1 0 0 1 0 10.84899998 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 7.046 8.40200043 Tm 0 g (without)Tj ( )Tj (S9)Tj ( )Tj (mix)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 8.59700012 8.40200043 Tm 0 g (with)Tj ( )Tj (S9)Tj ( )Tj (mix)Tj ( )Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 7.84600019 8.40200043 Tm 0 g (without)Tj 29.50500107 0 Td ( )Tj (S9)Tj 11.75499725 0 Td ( )Tj (mix)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 7.79699993 8.40200043 Tm 0 g (with)Tj ( )Tj (S9)Tj ( )Tj (mix)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 2.34599996 8.40200043 Tm 0 g (without)Tj ( )Tj 31.75500107 0 Td (S9)Tj 9.50499725 0 Td ( )Tj (mix)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAAIE 9 Tf 1 0 0 -1 2.24600005 8.40200043 Tm 0 g (without)Tj ( )Tj (S9)Tj ( )Tj (mix)Tj ET Q Q Q q 1 0 0 1 0 21.69799995 cm q -0.75 -0.5 m 61 -0.5 l 61 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (TA)Tj ( )Tj (1535)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 18.04999924 8.40200043 Tm 0 g (333,)Tj ( )Tj (5000)Tj -5.24699879 -10.34899902 TD (\(1000,)Tj ( )Tj (2500\))Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 13.35000038 8.40200043 Tm 0 g (333,)Tj ( )Tj (5000)Tj -5.24700069 -10.34899902 TD (\(1000,)Tj 23.24700165 0 TD ( )Tj (2500\))Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 18.85000038 8.40200043 Tm 0 g (333,)Tj ( )Tj (1000)Tj -5.24700069 -10.34899902 TD (\(2500,)Tj ( )Tj (5000\))Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 23.79999924 8.40200043 Tm 0 g (333)Tj -17.99599838 -10.34899902 TD (\(1000)Tj 20.99700165 0 TD ( )Tj (-)Tj ( )Tj (5000\))Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 1 0 0 1 0 42.89599991 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (TA)Tj ( )Tj (1537)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.5510006 8.40200043 Tm 0 g (333)Tj ( )Tj 15.74999809 0 Td (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 9.60099983 8.40200043 Tm 0 g (1000)Tj ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 17.35099983 8.40200043 Tm 0 g (333)Tj ( )Tj 15.75000191 0 Td (-)Tj 2.99699783 0 Td ( )Tj (5000)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.05099964 8.40200043 Tm 0 g (333)Tj 13.50000095 0 Td ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.35099983 8.40200043 Tm 0 g (33)Tj ( )Tj (-)Tj ( )Tj (333)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 14.0010004 8.40200043 Tm 0 g (100)Tj ( )Tj (-)Tj ( )Tj (333)Tj ET Q Q Q q 1 0 0 1 0 53.74499893 cm q -0.75 -0.5 m 61 -0.5 l 61 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (TA)Tj ( )Tj (98)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 16.5510006 8.40200043 Tm 0 g (333)Tj ( )Tj 15.74999809 0 Td (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 9.60099983 8.40200043 Tm 0 g (1000)Tj ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 18.85000038 8.40200043 Tm 0 g (333,)Tj ( )Tj (1000)Tj -5.24700069 -10.34899902 TD (\(2500,)Tj ( )Tj (5000\))Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 12.55000019 8.40200043 Tm 0 g (333,)Tj ( )Tj (1000)Tj -5.24700022 -10.34899902 TD (\(2500,)Tj ( )Tj (5000\))Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 1 0 0 1 0 74.94300079 cm q -0.75 -0.5 m 61 -0.5 l 61 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (TA)Tj ( )Tj (100)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 18.04999924 8.40200043 Tm 0 g (333,)Tj ( )Tj (1000)Tj -5.24699879 -10.34899902 TD (\(2500,)Tj ( )Tj (5000\))Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 13.35000038 8.40200043 Tm 0 g (333,)Tj ( )Tj (1000)Tj -5.24700069 -10.34899902 TD (\(2500,)Tj 23.24700165 0 TD ( )Tj (5000\))Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 30.10000038 8.40200043 Tm 0 g (333)Tj -17.99600029 -10.34899902 TD (\(1000)Tj 20.99700165 0 TD ( )Tj (-)Tj 5.24699783 0 Td ( )Tj (5000\))Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 12.55000019 8.40200043 Tm 0 g (333,)Tj ( )Tj (1000)Tj -5.24700022 -10.34899902 TD (\(250)Tj (0,)Tj ( )Tj (5000\))Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 1 0 0 1 0 96.14099884 cm q -0.75 -0.5 m 61 -0.5 l 61 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (WP2)Tj ( )Tj (uvrA)Tj ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 34.79999924 8.40200043 Tm 0 g (/)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 30.10000038 8.40200043 Tm 0 g (/)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 35.59999847 8.40200043 Tm 0 g (/)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 21.54999924 8.40200043 Tm 0 g (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 11.84899998 l -0.75 11.84899998 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 1 0 0 1 0 106.98999786 cm q -0.75 -0.5 m 61 -0.5 l 61 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (WP2)Tj ( )Tj (uvrA)Tj ( )Tj 10.34899902 TL (pKM101)' ET Q Q q 1 0 0 1 60.25 0 cm -0.75 -0.5 m 76.15000153 -0.5 l 76.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 14.30099964 8.40200043 Tm 0 g (1000)Tj ( )Tj (-)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 135.6499939 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 11.10000038 8.40200043 Tm 0 g (2500,)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 201.6499939 0 cm -0.75 -0.5 m 77.75 -0.5 l 77.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 15.10099983 8.40200043 Tm 0 g (1000)Tj 18.00000191 0 Td ( )Tj (-)Tj 5.24699783 0 Td ( )Tj (5000)Tj ET Q Q q 1 0 0 1 278.6499939 0 cm -0.75 -0.5 m 65.15000153 -0.5 l 65.15000153 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 10.30000019 8.40200043 Tm 0 g (2500,)Tj ( )Tj (5000)Tj ET Q Q q 1 0 0 1 343.04998779 0 cm -0.75 -0.5 m 66.75 -0.5 l 66.75 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.60000038 8.40200043 Tm 0 g (n.p.)Tj ET Q Q q 1 0 0 1 409.04998779 0 cm -0.75 -0.5 m 66.55000305 -0.5 l 66.55000305 22.19799995 l -0.75 22.19799995 l h W n q 1 0 0 1 3.5 0.5 cm BT /FAAACA 9 Tf 1 0 0 -1 24.5 8.40200043 Tm 0 g (n.p.)Tj ET Q Q Q q 0 G 0.5 w 0 0.5 m 0 128.18800354 l S Q q 0 G 0.5 w 60.25 0.5 m 60.25 10.84899998 l S Q q 0 G 0.5 w 60.25 11.34899998 m 60.25 21.69799995 l S Q q 0 G 0.5 w 60.25 22.19799995 m 60.25 42.89599991 l S Q q 0 G 0.5 w 60.25 43.39599991 m 60.25 53.74499893 l S Q q 0 G 0.5 w 60.25 54.24499893 m 60.25 74.94300079 l S Q q 0 G 0.5 w 60.25 75.44300079 m 60.25 96.14099884 l S Q q 0 G 0.5 w 60.25 96.64099884 m 60.25 106.98999786 l S Q q 0 G 0.5 w 60.25 107.48999786 m 60.25 128.18800354 l S Q q 0 G 0.5 w 201.6499939 0.5 m 201.6499939 10.84899998 l S Q q 0 G 0.5 w 201.6499939 11.34899998 m 201.6499939 21.69799995 l S Q q 0 G 0.5 w 201.6499939 22.19799995 m 201.6499939 42.89599991 l S Q q 0 G 0.5 w 201.6499939 43.39599991 m 201.6499939 53.74499893 l S Q q 0 G 0.5 w 201.6499939 54.24499893 m 201.6499939 74.94300079 l S Q q 0 G 0.5 w 201.6499939 75.44300079 m 201.6499939 96.14099884 l S Q q 0 G 0.5 w 201.6499939 96.64099884 m 201.6499939 106.98999786 l S Q q 0 G 0.5 w 201.6499939 107.48999786 m 201.6499939 128.18800354 l S Q q 0 G 0.5 w 343.04998779 0.5 m 343.04998779 10.84899998 l S Q q 0 G 0.5 w 343.04998779 11.34899998 m 343.04998779 21.69799995 l S Q q 0 G 0.5 w 343.04998779 22.19799995 m 343.04998779 42.89599991 l S Q q 0 G 0.5 w 343.04998779 43.39599991 m 343.04998779 53.74499893 l S Q q 0 G 0.5 w 343.04998779 54.24499893 m 343.04998779 74.94300079 l S Q q 0 G 0.5 w 343.04998779 75.44300079 m 343.04998779 96.14099884 l S Q q 0 G 0.5 w 343.04998779 96.64099884 m 343.04998779 106.98999786 l S Q q 0 G 0.5 w 343.04998779 107.48999786 m 343.04998779 128.18800354 l S Q q 0 G 0.5 w 409.04998779 0.5 m 409.04998779 10.84899998 l S Q q 0 G 0.5 w 409.04998779 11.34899998 m 409.04998779 21.69799995 l S Q q 0 G 0.5 w 409.04998779 22.19799995 m 409.04998779 42.89599991 l S Q q 0 G 0.5 w 409.04998779 43.39599991 m 409.04998779 53.74499893 l S Q q 0 G 0.5 w 409.04998779 54.24499893 m 409.04998779 74.94300079 l S Q q 0 G 0.5 w 409.04998779 75.44300079 m 409.04998779 96.14099884 l S Q q 0 G 0.5 w 409.04998779 96.64099884 m 409.04998779 106.98999786 l S Q q 0 G 0.5 w 409.04998779 107.48999786 m 409.04998779 128.18800354 l S Q q 0 G 0.5 w 474.84997559 0.5 m 474.84997559 128.18800354 l S Q q 0 G 0.5 w 135.6499939 11.34899998 m 135.6499939 21.69799995 l S Q q 0 G 0.5 w 135.6499939 22.19799995 m 135.6499939 42.89599991 l S Q q 0 G 0.5 w 135.6499939 43.39599991 m 135.6499939 53.74499893 l S Q q 0 G 0.5 w 135.6499939 54.24499893 m 135.6499939 74.94300079 l S Q q 0 G 0.5 w 135.6499939 75.44300079 m 135.6499939 96.14099884 l S Q q 0 G 0.5 w 135.6499939 96.64099884 m 135.6499939 106.98999786 l S Q q 0 G 0.5 w 135.6499939 107.48999786 m 135.6499939 128.18800354 l S Q q 0 G 0.5 w 278.6499939 11.34899998 m 278.6499939 21.69799995 l S Q q 0 G 0.5 w 278.6499939 22.19799995 m 278.6499939 42.89599991 l S Q q 0 G 0.5 w 278.6499939 43.39599991 m 278.6499939 53.74499893 l S Q q 0 G 0.5 w 278.6499939 54.24499893 m 278.6499939 74.94300079 l S Q q 0 G 0.5 w 278.6499939 75.44300079 m 278.6499939 96.14099884 l S Q q 0 G 0.5 w 278.6499939 96.64099884 m 278.6499939 106.98999786 l S Q q 0 G 0.5 w 278.6499939 107.48999786 m 278.6499939 128.18800354 l S Q q 0 G 0.5 w -0.25 0.25 m 475.09997559 0.25 l S Q q 0 G 0.5 w 0.25 11.09899998 m 474.59997559 11.09899998 l S Q q 0 G 0.5 w 0.25 21.94799995 m 474.59997559 21.94799995 l S Q q 0 G 0.5 w 0.25 43.14599991 m 474.59997559 43.14599991 l S Q q 0 G 0.5 w 0.25 53.99499893 m 474.59997559 53.99499893 l S Q q 0 G 0.5 w 0.25 75.19300079 m 474.59997559 75.19300079 l S Q q 0 G 0.5 w 0.25 96.39099884 m 474.59997559 96.39099884 l S Q q 0 G 0.5 w 0.25 107.23999786 m 474.59997559 107.23999786 l S Q q 0 G 0.5 w -0.25 128.43800354 m 475.09997559 128.43800354 l S Q Q q 1 0 0 1 0 647.60498047 cm BT /FAAACA 9 Tf 1 0 0 -1 0 8.40200043 Tm 0 g (/)Tj ( )Tj (=)Tj ( )Tj (no)Tj ( )Tj (toxic)Tj ( )Tj (effect)Tj 64.0510025 0 Td ( )Tj (observed;)Tj ( )Tj (in)Tj ( )Tj (brackets)Tj ( )Tj (\()Tj ( )Tj (\))Tj 89.21700287 0 Td ( )Tj (=)Tj 7.32598877 0 Td ( )Tj (not)Tj ( )Tj (evaluable)Tj ( )Tj (due)Tj ( )Tj (to)Tj ( )Tj (reduced)Tj 105.70501709 0 Td ( )Tj (background)Tj ( )Tj (growth;)Tj ( )Tj (n.p.)Tj ( )Tj (=)Tj 98.05999756 0 Td ( )Tj (not)Tj ( )Tj (performed)Tj ET Q q 1 0 0 1 0 657.95397949 cm Q Q 1 0 0 -1 0 841.70001221 cm
-endstream
endobj
9 0 obj
<>
endobj
10 0 obj
<>
endobj
11 0 obj
<>
endobj
14 0 obj
<>
endobj
15 0 obj
<>stream
-
POS/2cZ `cmap:^\ < |