diff --git a/layoutparser-service-image/pom.xml b/layoutparser-service-image/pom.xml
index 6107cf7..8283902 100644
--- a/layoutparser-service-image/pom.xml
+++ b/layoutparser-service-image/pom.xml
@@ -12,6 +12,6 @@
layoutparser-service-image
- 1.0.0
+
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/AtomicPositionBlockData.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/AtomicPositionBlockData.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/AtomicPositionBlockData.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/AtomicPositionBlockData.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/AtomicTextBlockData.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/AtomicTextBlockData.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/AtomicTextBlockData.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/AtomicTextBlockData.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/DocumentData.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/DocumentData.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/DocumentData.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/DocumentData.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/PageData.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/PageData.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/PageData.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/PageData.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/TableOfContentsData.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/TableOfContentsData.java
similarity index 77%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/TableOfContentsData.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/TableOfContentsData.java
index 738dd1a..c875969 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/data/TableOfContentsData.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/TableOfContentsData.java
@@ -1,6 +1,5 @@
package com.knecon.fforesight.service.layoutparser.internal.api.data;
-import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
@@ -11,6 +10,7 @@ import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
+import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.experimental.FieldDefaults;
@@ -31,7 +31,7 @@ public class TableOfContentsData {
}
EntryData entry = root.subEntries.get(tocId.get(0));
for (int id : tocId.subList(1, tocId.size())) {
- entry = entry.subEntries().get(id);
+ entry = entry.subEntries.get(id);
}
return entry;
}
@@ -43,12 +43,6 @@ public class TableOfContentsData {
}
- private static List getIds(String idsAsString) {
-
- return Arrays.stream(idsAsString.split("\\.")).map(Integer::valueOf).toList();
- }
-
-
public String toString() {
return String.join("\n", streamAllEntries().map(EntryData::toString).toList());
@@ -57,12 +51,23 @@ public class TableOfContentsData {
private static Stream flatten(EntryData entry) {
- return Stream.concat(Stream.of(entry), entry.subEntries().stream().flatMap(TableOfContentsData::flatten));
+ return Stream.concat(Stream.of(entry), entry.subEntries.stream().flatMap(TableOfContentsData::flatten));
}
@Builder
- public record EntryData(NodeType type, int[] tocId, Long[] atomicBlocks, Long[] pages, Map properties, List subEntries) {
+ @Getter
+ @AllArgsConstructor
+ @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE)
+ public static class EntryData {
+
+ NodeType type;
+ int[] tocId;
+ Long[] atomicBlocks;
+ Long[] pages;
+ Map properties;
+ List subEntries;
+
@Override
public String toString() {
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/Boundary.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/Boundary.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/Boundary.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/Boundary.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/DocumentGraph.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/DocumentGraph.java
similarity index 98%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/DocumentGraph.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/DocumentGraph.java
index 1803b48..61ec247 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/DocumentGraph.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/DocumentGraph.java
@@ -77,7 +77,7 @@ public class DocumentGraph implements SemanticNode {
private Stream streamAllNodes() {
- return tableOfContents.streamAllEntriesInOrder().map(TableOfContents.Entry::node);
+ return tableOfContents.streamAllEntriesInOrder().map(TableOfContents.Entry::getNode);
}
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/TableOfContents.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/TableOfContents.java
similarity index 77%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/TableOfContents.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/TableOfContents.java
index 14318bf..c2f8fcb 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/TableOfContents.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/TableOfContents.java
@@ -14,8 +14,12 @@ import com.knecon.fforesight.service.layoutparser.internal.api.graph.nodes.Seman
import com.knecon.fforesight.service.layoutparser.internal.api.graph.textblock.TextBlock;
import com.knecon.fforesight.service.layoutparser.internal.api.graph.textblock.TextBlockCollector;
+import lombok.AccessLevel;
+import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
+import lombok.Getter;
+import lombok.experimental.FieldDefaults;
@Data
public class TableOfContents {
@@ -31,7 +35,7 @@ public class TableOfContents {
public TextBlock buildTextBlock() {
- return streamAllEntriesInOrder().map(Entry::node).filter(SemanticNode::isTerminal).map(SemanticNode::getTerminalTextBlock).collect(new TextBlockCollector());
+ return streamAllEntriesInOrder().map(Entry::getNode).filter(SemanticNode::isTerminal).map(SemanticNode::getTerminalTextBlock).collect(new TextBlockCollector());
}
@@ -49,8 +53,8 @@ public class TableOfContents {
Entry parent = getEntryById(parentId);
List newId = new LinkedList<>(parentId);
- newId.add(parent.children().size());
- parent.children().add(Entry.builder().tocId(newId).node(node).type(nodeType).children(new LinkedList<>()).build());
+ newId.add(parent.children.size());
+ parent.children.add(Entry.builder().tocId(newId).node(node).type(nodeType).children(new LinkedList<>()).build());
return newId;
}
@@ -66,7 +70,7 @@ public class TableOfContents {
if (id >= entry.children.size() || 0 > id) {
return false;
}
- entry = entry.children().get(id);
+ entry = entry.children.get(id);
}
return true;
}
@@ -86,7 +90,7 @@ public class TableOfContents {
public Stream streamChildrenNodes(List tocId) {
- return getEntryById(tocId).children().stream().map(Entry::node);
+ return getEntryById(tocId).children.stream().map(Entry::getNode);
}
@@ -109,7 +113,7 @@ public class TableOfContents {
}
Entry entry = root.children.get(tocId.get(0));
for (int id : tocId.subList(1, tocId.size())) {
- entry = entry.children().get(id);
+ entry = entry.children.get(id);
}
return entry;
}
@@ -148,17 +152,26 @@ public class TableOfContents {
private static Stream flatten(Entry entry) {
- return Stream.concat(Stream.of(entry), entry.children().stream().flatMap(TableOfContents::flatten));
+ return Stream.concat(Stream.of(entry), entry.children.stream().flatMap(TableOfContents::flatten));
}
@Builder
- public record Entry(List tocId, NodeType type, SemanticNode node, List children) {
+ @Getter
+ @AllArgsConstructor
+ @FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
+ public static class Entry {
+
+ List tocId;
+ NodeType type;
+ SemanticNode node;
+ List children;
+
@Override
public String toString() {
- return node().toString();
+ return node.toString();
}
@@ -168,6 +181,13 @@ public class TableOfContents {
return Hashing.murmur3_32_fixed().hashString(toString(), StandardCharsets.UTF_8).hashCode();
}
+
+ @Override
+ public boolean equals(Object o) {
+
+ return o instanceof Entry && o.hashCode() == this.hashCode();
+ }
+
}
}
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/entity/EntityNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/entity/EntityNode.java
similarity index 98%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/entity/EntityNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/entity/EntityNode.java
index 226d356..286e52d 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/entity/EntityNode.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/entity/EntityNode.java
@@ -28,7 +28,7 @@ public interface EntityNode {
/**
* The deepest fully containing node represents the node which is the deepest node in the document tree structure,
- * whose boundary also fully contains the boundary of this entity
+ * whose boundary also fully contains the boundary of this entity.
*
* @return the deepest fully containing node
*/
@@ -62,7 +62,7 @@ public interface EntityNode {
/**
- * removes all occurrences of this node in the graph and resets all graph specific fields
+ * removes all occurrences of this node in the graph and resets all graph specific fields.
*/
default void removeFromGraph() {
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/entity/EntityPosition.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/entity/EntityPosition.java
similarity index 87%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/entity/EntityPosition.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/entity/EntityPosition.java
index 90c1405..4be7d3a 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/entity/EntityPosition.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/entity/EntityPosition.java
@@ -36,4 +36,10 @@ public class EntityPosition {
return Hashing.murmur3_128().hashString(sb.toString(), StandardCharsets.UTF_8).hashCode();
}
+ @Override
+ public boolean equals(Object o) {
+
+ return o instanceof EntityPosition && o.hashCode() == this.hashCode();
+ }
+
}
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/FooterNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/FooterNode.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/FooterNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/FooterNode.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/HeaderNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/HeaderNode.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/HeaderNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/HeaderNode.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/HeadlineNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/HeadlineNode.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/HeadlineNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/HeadlineNode.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/ImageNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/ImageNode.java
similarity index 95%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/ImageNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/ImageNode.java
index be1f2fb..c428ed6 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/ImageNode.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/ImageNode.java
@@ -34,10 +34,10 @@ public class ImageNode implements SemanticNode {
boolean transparency;
Rectangle2D position;
- @Builder.Default
- boolean redaction = false;
- @Builder.Default
- boolean ignored = false;
+
+ boolean redaction;
+ boolean ignored;
+
@Builder.Default
String redactionReason = "";
@Builder.Default
@@ -55,7 +55,6 @@ public class ImageNode implements SemanticNode {
@EqualsAndHashCode.Exclude
Set entities = new HashSet<>();
-
@Override
public TextBlock buildTextBlock() {
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/ImageType.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/ImageType.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/ImageType.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/ImageType.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/NodeType.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/NodeType.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/NodeType.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/NodeType.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/PageNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/PageNode.java
similarity index 92%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/PageNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/PageNode.java
index 2e7dddc..f4601c1 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/PageNode.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/PageNode.java
@@ -63,4 +63,9 @@ public class PageNode {
return number;
}
+ @Override
+ public boolean equals(Object o) {
+
+ return o instanceof PageNode && o.hashCode() == this.hashCode();
+ }
}
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/ParagraphNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/ParagraphNode.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/ParagraphNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/ParagraphNode.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/SectionNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/SectionNode.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/SectionNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/SectionNode.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/SemanticNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/SemanticNode.java
similarity index 97%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/SemanticNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/SemanticNode.java
index 5937555..a5a4ba3 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/SemanticNode.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/SemanticNode.java
@@ -37,7 +37,7 @@ public interface SemanticNode {
/**
- * Each AtomicTextBlock is assigned a page, so to get the pages this node appears on, it collects the PageNodes from each AtomicTextBlock belonging to this node's ClassificationTextBlock
+ * Each AtomicTextBlock is assigned a page, so to get the pages this node appears on, it collects the PageNodes from each AtomicTextBlock belonging to this node's ClassificationTextBlock.
*
* @return Set of PageNodes this node appears on.
*/
@@ -54,7 +54,7 @@ public interface SemanticNode {
/**
- * The id is a List of Integers uniquely identifying this node in the TableOfContents
+ * The id is a List of Integers uniquely identifying this node in the TableOfContents.
*
* @return the TableOfContents ID
*/
@@ -62,7 +62,7 @@ public interface SemanticNode {
/**
- * This should only be used during graph construction
+ * This should only be used during graph construction.
*
* @param tocId List of Integers
*/
@@ -96,7 +96,7 @@ public interface SemanticNode {
*/
default SemanticNode getParent() {
- return getTableOfContents().getParentEntryById(getTocId()).node();
+ return getTableOfContents().getParentEntryById(getTocId()).getNode();
}
@@ -199,7 +199,7 @@ public interface SemanticNode {
/**
- * Streams all children located directly underneath this node in the TableOfContents
+ * Streams all children located directly underneath this node in the TableOfContents.
*
* @return Stream of all children
*/
@@ -216,7 +216,7 @@ public interface SemanticNode {
*/
default Stream streamAllSubNodes() {
- return getTableOfContents().streamAllSubEntriesInOrder(getTocId()).map(TableOfContents.Entry::node);
+ return getTableOfContents().streamAllSubEntriesInOrder(getTocId()).map(TableOfContents.Entry::getNode);
}
@@ -247,7 +247,7 @@ public interface SemanticNode {
/**
- * TODO this does not yet work for sections spanning multiple columns
+ * TODO this does not yet work for sections spanning multiple columns.
*
* @param bBoxPerPage initial empty BoundingBox
* @return The union of the BoundingBoxes of all children
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/TableCellNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/TableCellNode.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/TableCellNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/TableCellNode.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/TableNode.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/TableNode.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/nodes/TableNode.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/nodes/TableNode.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/AtomicTextBlock.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/AtomicTextBlock.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/AtomicTextBlock.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/AtomicTextBlock.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/ConcatenatedTextBlock.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/ConcatenatedTextBlock.java
similarity index 97%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/ConcatenatedTextBlock.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/ConcatenatedTextBlock.java
index 6f455b7..1b4ab75 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/ConcatenatedTextBlock.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/ConcatenatedTextBlock.java
@@ -54,7 +54,7 @@ public class ConcatenatedTextBlock implements TextBlock {
private AtomicTextBlock getAtomicTextBlockByStringIndex(int stringIdx) {
- return atomicTextBlocks.stream().filter(textBlock -> (textBlock.getBoundary().contains(stringIdx))).findAny().orElseThrow(IndexOutOfBoundsException::new);
+ return atomicTextBlocks.stream().filter(textBlock -> textBlock.getBoundary().contains(stringIdx)).findAny().orElseThrow(IndexOutOfBoundsException::new);
}
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/TextBlock.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/TextBlock.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/TextBlock.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/TextBlock.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/TextBlockCollector.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/TextBlockCollector.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/graph/textblock/TextBlockCollector.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/graph/textblock/TextBlockCollector.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/mapper/DocumentDataMapper.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/mapper/DocumentDataMapper.java
similarity index 89%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/mapper/DocumentDataMapper.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/mapper/DocumentDataMapper.java
index 85f1be6..13bdf1b 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/mapper/DocumentDataMapper.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/mapper/DocumentDataMapper.java
@@ -59,25 +59,25 @@ public class DocumentDataMapper {
Long[] atomicTextBlocks;
- if (entry.node().isTerminal()) {
- atomicTextBlocks = toAtomicTextBlockIds(entry.node().getTerminalTextBlock());
+ if (entry.getNode().isTerminal()) {
+ atomicTextBlocks = toAtomicTextBlockIds(entry.getNode().getTerminalTextBlock());
} else {
atomicTextBlocks = new Long[]{};
}
- Map properties = switch (entry.type()) {
- case TABLE -> PropertiesMapper.buildTableProperties((TableNode) entry.node());
- case TABLE_CELL -> PropertiesMapper.buildTableCellProperties((TableCellNode) entry.node());
- case IMAGE -> PropertiesMapper.buildImageProperties((ImageNode) entry.node());
+ Map properties = switch (entry.getType()) {
+ case TABLE -> PropertiesMapper.buildTableProperties((TableNode) entry.getNode());
+ case TABLE_CELL -> PropertiesMapper.buildTableCellProperties((TableCellNode) entry.getNode());
+ case IMAGE -> PropertiesMapper.buildImageProperties((ImageNode) entry.getNode());
default -> new HashMap<>();
};
return TableOfContentsData.EntryData.builder()
- .tocId(toPrimitiveIntArray(entry.tocId()))
- .subEntries(entry.children().stream().map(DocumentDataMapper::toEntryData).toList())
- .type(entry.type())
+ .tocId(toPrimitiveIntArray(entry.getTocId()))
+ .subEntries(entry.getChildren().stream().map(DocumentDataMapper::toEntryData).toList())
+ .type(entry.getType())
.atomicBlocks(atomicTextBlocks)
- .pages(entry.node().getPages().stream().map(PageNode::getNumber).map(Integer::longValue).toArray(Long[]::new))
+ .pages(entry.getNode().getPages().stream().map(PageNode::getNumber).map(Integer::longValue).toArray(Long[]::new))
.properties(properties)
.build();
}
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/mapper/DocumentGraphMapper.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/mapper/DocumentGraphMapper.java
similarity index 89%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/mapper/DocumentGraphMapper.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/mapper/DocumentGraphMapper.java
index c2e39f2..d007e82 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/mapper/DocumentGraphMapper.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/mapper/DocumentGraphMapper.java
@@ -52,7 +52,7 @@ public class DocumentGraphMapper {
context.pages.addAll(Arrays.stream(documentData.getPages()).map(DocumentGraphMapper::buildPage).toList());
- context.tableOfContents.getRoot().children().addAll(buildEntries(documentData.getTableOfContents().getRoot().subEntries(), context));
+ context.tableOfContents.getRoot().getChildren().addAll(buildEntries(documentData.getTableOfContents().getRoot().getSubEntries(), context));
documentGraph.setTableOfContents(context.tableOfContents);
documentGraph.setPages(new HashSet<>(context.pages));
@@ -70,35 +70,35 @@ public class DocumentGraphMapper {
for (TableOfContentsData.EntryData entryData : entries) {
boolean terminal = isTerminal(entryData);
- List pages = Arrays.stream(entryData.pages()).map(pageNumber -> getPage(pageNumber, context)).toList();
+ List pages = Arrays.stream(entryData.getPages()).map(pageNumber -> getPage(pageNumber, context)).toList();
- SemanticNode node = switch (entryData.type()) {
+ SemanticNode node = switch (entryData.getType()) {
case SECTION -> buildSection(context);
case PARAGRAPH -> buildParagraph(context, terminal);
case HEADLINE -> buildHeadline(context, terminal);
case HEADER -> buildHeader(context, terminal);
case FOOTER -> buildFooter(context, terminal);
- case TABLE -> buildTable(context, entryData.properties());
- case TABLE_CELL -> buildTableCell(context, entryData.properties(), terminal);
- case IMAGE -> buildImage(context, entryData.properties());
- default -> throw new UnsupportedOperationException("Not yet implemented for type " + entryData.type());
+ case TABLE -> buildTable(context, entryData.getProperties());
+ case TABLE_CELL -> buildTableCell(context, entryData.getProperties(), terminal);
+ case IMAGE -> buildImage(context, entryData.getProperties());
+ default -> throw new UnsupportedOperationException("Not yet implemented for type " + entryData.getType());
};
if (node.isTerminal()) {
- TextBlock textBlock = toTextBlock(entryData.atomicBlocks(), context, node);
+ TextBlock textBlock = toTextBlock(entryData.getAtomicBlocks(), context, node);
node.setTerminalTextBlock(textBlock);
}
- List tocId = Arrays.stream(entryData.tocId()).boxed().toList();
+ List tocId = Arrays.stream(entryData.getTocId()).boxed().toList();
node.setTocId(tocId);
- if (entryData.type() == HEADER) {
+ if (entryData.getType() == HEADER) {
pages.forEach(page -> page.setHeader((HeaderNode) node));
- } else if (entryData.type() == FOOTER) {
+ } else if (entryData.getType() == FOOTER) {
pages.forEach(page -> page.setFooter((FooterNode) node));
} else {
pages.forEach(page -> page.getMainBody().add(node));
}
- newEntries.add(TableOfContents.Entry.builder().tocId(tocId).type(entryData.type()).children(buildEntries(entryData.subEntries(), context)).node(node).build());
+ newEntries.add(TableOfContents.Entry.builder().tocId(tocId).type(entryData.getType()).children(buildEntries(entryData.getSubEntries(), context)).node(node).build());
}
return newEntries;
}
@@ -112,7 +112,7 @@ public class DocumentGraphMapper {
private static boolean isTerminal(TableOfContentsData.EntryData entryData) {
- return entryData.atomicBlocks().length > 0;
+ return entryData.getAtomicBlocks().length > 0;
}
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/mapper/PropertiesMapper.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/mapper/PropertiesMapper.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/mapper/PropertiesMapper.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/mapper/PropertiesMapper.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/services/EntityEnrichmentService.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/services/EntityEnrichmentService.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/services/EntityEnrichmentService.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/services/EntityEnrichmentService.java
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/services/EntityInsertionService.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/services/EntityInsertionService.java
similarity index 88%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/services/EntityInsertionService.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/services/EntityInsertionService.java
index c4b83c3..5e116da 100644
--- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/services/EntityInsertionService.java
+++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/services/EntityInsertionService.java
@@ -4,7 +4,6 @@ import java.util.Collections;
import java.util.NoSuchElementException;
import java.util.Set;
-import com.knecon.fforesight.service.layoutparser.internal.api.graph.Boundary;
import com.knecon.fforesight.service.layoutparser.internal.api.graph.TableOfContents;
import com.knecon.fforesight.service.layoutparser.internal.api.graph.entity.EntityNode;
import com.knecon.fforesight.service.layoutparser.internal.api.graph.nodes.PageNode;
@@ -54,10 +53,4 @@ public class EntityInsertionService {
entity.getIntersectingNodes().forEach(node -> node.getEntities().add(entity));
}
-
- private static Boundary toLineAfterBoundary(TextBlock textBlock, Boundary boundary) {
-
- return new Boundary(boundary.end(), textBlock.getNextLinebreak(boundary.end()));
- }
-
}
diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/services/RectangleTransformations.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/services/RectangleTransformations.java
similarity index 100%
rename from layoutparser-service/layoutparser-service-internal-api/src/main/java/com.knecon.fforesight.service.layoutparser.internal.api/services/RectangleTransformations.java
rename to layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/services/RectangleTransformations.java
diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/classification/dto/table/CleanRulings.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/classification/dto/table/CleanRulings.java
index b09bf5b..9da8aa0 100644
--- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/classification/dto/table/CleanRulings.java
+++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/classification/dto/table/CleanRulings.java
@@ -2,8 +2,6 @@ package com.knecon.fforesight.service.layoutparser.processor.classification.dto.
import java.util.List;
-import com.knecon.fforesight.service.layoutparser.processor.classification.dto.table.Ruling;
-
import lombok.Builder;
import lombok.Data;
diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/factory/ImageSortService.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/factory/ImageSortService.java
deleted file mode 100644
index 285bcc5..0000000
--- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/factory/ImageSortService.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package com.knecon.fforesight.service.layoutparser.processor.factory;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.springframework.stereotype.Service;
-
-import com.knecon.fforesight.service.layoutparser.processor.classification.dto.AbstractTextContainer;
-import com.knecon.fforesight.service.layoutparser.processor.classification.dto.ClassificationDocument;
-import com.knecon.fforesight.service.layoutparser.processor.classification.dto.ClassificationSection;
-import com.knecon.fforesight.service.layoutparser.processor.classification.dto.image.ClassifiedImage;
-import com.knecon.fforesight.service.layoutparser.processor.classification.dto.table.Table;
-import com.knecon.fforesight.service.layoutparser.processor.classification.dto.table.TableCell;
-import com.knecon.fforesight.service.layoutparser.processor.classification.dto.text.ClassificationTextBlock;
-
-@Service
-public class ImageSortService {
-
- public SortedImages sortImagesIntoStructure(ClassificationDocument document) {
-
- SortedImages sortedImages = new SortedImages(new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>());
-
- Map> imagesByPage = document.getSections()
- .stream()
- .flatMap(section -> section.getImages().stream())
- .distinct()
- .collect(Collectors.groupingBy(ClassifiedImage::getPage));
-
- for (int pageNumber : imagesByPage.keySet()) {
- List textContainersOnPage = document.getSections()
- .stream()
- .flatMap(section -> section.getPageBlocks().stream())
- .filter(abstractTextContainer -> abstractTextContainer.getPage() == pageNumber)
- .toList();
-
- List sectionsOnPage = document.getSections()
- .stream()
- .filter(section -> section.getPageBlocks().stream().anyMatch(block -> block.getPage() == pageNumber))
- .toList();
-
- for (ClassifiedImage image : imagesByPage.get(pageNumber)) {
- sortImage(textContainersOnPage, sectionsOnPage, image, sortedImages);
- }
- }
- return sortedImages;
- }
-
-
- private void sortImage(List textContainersOnPage, List sectionsOnPage, ClassifiedImage image, SortedImages sortedImages) {
-
- Optional containingTextContainer = getContainingTextContainer(image, textContainersOnPage);
- Optional sectionContainingTextContainer = getContainingSection(image, sectionsOnPage);
- List containedTextContainers = getContainedTextContainers(image, textContainersOnPage);
- List containedSections = getContainedSections(image, sectionsOnPage);
- if (containingTextContainer.isPresent()) {
- if (sortImageIntoTextContainerOrCell(image, sortedImages, containingTextContainer.get())) {
- return;
- }
- }
- }
-
-
- private static boolean sortImageIntoTextContainerOrCell(ClassifiedImage image, SortedImages sortedImages, AbstractTextContainer containingTextContainer) {
-
- if (containingTextContainer instanceof ClassificationTextBlock) {
- sortedImages.containedInTextContainer().computeIfAbsent(containingTextContainer, sortedImage -> new ArrayList<>()).add(image);
- return true;
- }
- if (containingTextContainer instanceof Table) {
- Optional containingCell = getContainingCell((Table) containingTextContainer, image);
- if (containingCell.isPresent()) {
- sortedImages.containedInCell().computeIfAbsent(containingCell.get(), sortedImage -> new ArrayList<>()).add(image);
- return true;
- }
- }
-
- return false;
- }
-
-
- private static Optional getContainingCell(Table table, ClassifiedImage image) {
-
- return table.getRows().stream().flatMap(List::stream).filter(cell -> cell.contains(image.getPosition())).findFirst();
- }
-
-
- private List getContainedSections(ClassifiedImage image, List sectionsOnPage) {
-
- return sectionsOnPage.stream()
- .filter(section -> image.getPosition().contains(RectangleTransformations.bBoxUnionAbstractTextContainer(section.getPageBlocks()
- .stream()
- .filter(block -> block.getPage() == image.getPage())
- .toList())))
- .toList();
- }
-
-
- private List getContainedTextContainers(ClassifiedImage image, List textContainersOnPage) {
-
- return textContainersOnPage.stream().filter(textContainer -> image.getPosition().contains(RectangleTransformations.toRectangle2D(textContainer))).toList();
- }
-
-
- private Optional getContainingSection(ClassifiedImage image, List sectionsOnPage) {
-
- return sectionsOnPage.stream()//
- .filter(section -> //
- RectangleTransformations.bBoxUnionAbstractTextContainer(section.getPageBlocks().stream().filter(block -> block.getPage() == image.getPage()).toList())//
- .contains(image.getPosition())).findFirst();
- }
-
-
- private Optional getContainingTextContainer(ClassifiedImage image, List textContainersOnPage) {
-
- return textContainersOnPage.stream().filter(textContainer -> RectangleTransformations.toRectangle2D(textContainer).contains(image.getPosition())).findFirst();
- }
-
-
- public record SortedImages(
- Map> containedInCell,
- Map> containedInTextContainer,
- Map> containedInSection,
- Map> containedByImage,
- Map> sectionContainedByImage) {
-
- }
-
-}
diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/multitenancy/EncryptionDecryptionService.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/multitenancy/EncryptionDecryptionService.java
index dfda46c..a59bd87 100644
--- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/multitenancy/EncryptionDecryptionService.java
+++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/multitenancy/EncryptionDecryptionService.java
@@ -6,6 +6,7 @@ import java.security.SecureRandom;
import java.security.spec.KeySpec;
import java.util.Base64;
+import javax.annotation.PostConstruct;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
@@ -16,7 +17,6 @@ import javax.crypto.spec.SecretKeySpec;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
-import jakarta.annotation.PostConstruct;
import lombok.SneakyThrows;
@Service
diff --git a/layoutparser-service/layoutparser-service-server/pom.xml b/layoutparser-service/layoutparser-service-server/pom.xml
index d9372f1..904c47f 100644
--- a/layoutparser-service/layoutparser-service-server/pom.xml
+++ b/layoutparser-service/layoutparser-service-server/pom.xml
@@ -65,18 +65,54 @@
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ lombok.launch.AnnotationProcessorHider$AnnotationProcessor
+ com.dslplatform.json.processor.CompiledJsonAnnotationProcessor
+
+
+
+
+
+
+
+ pl.project13.maven
+ git-commit-id-plugin
+
+
+
+ revision
+
+
+ true
+
+ true
+
+
+
+
+
+
+
org.springframework.boot
spring-boot-maven-plugin
-
-
-
- org.projectlombok
- lombok
-
-
-
+
+
+
+ repackage
+
+
+ true
+
+
+
+
diff --git a/layoutparser-service/layoutparser-service-server/src/main/java/com.knecon.fforesight.service.layoutparser.server/Application.java b/layoutparser-service/layoutparser-service-server/src/main/java/com/knecon/fforesight/service/layoutparser/server/Application.java
similarity index 90%
rename from layoutparser-service/layoutparser-service-server/src/main/java/com.knecon.fforesight.service.layoutparser.server/Application.java
rename to layoutparser-service/layoutparser-service-server/src/main/java/com/knecon/fforesight/service/layoutparser/server/Application.java
index 558ad7f..e8b3584 100644
--- a/layoutparser-service/layoutparser-service-server/src/main/java/com.knecon.fforesight.service.layoutparser.server/Application.java
+++ b/layoutparser-service/layoutparser-service-server/src/main/java/com/knecon/fforesight/service/layoutparser/server/Application.java
@@ -13,9 +13,10 @@ import com.knecon.fforesight.service.layoutparser.processor.LayoutparserServiceP
import com.knecon.fforesight.service.layoutparser.processor.multitenancy.AsyncConfig;
import com.knecon.fforesight.service.layoutparser.processor.multitenancy.MultiTenancyMessagingConfiguration;
import com.knecon.fforesight.service.layoutparser.processor.multitenancy.MultiTenancyWebConfiguration;
+import com.knecon.fforesight.service.layoutparser.processor.multitenancy.TenantsClient;
@Import({MultiTenancyWebConfiguration.class, AsyncConfig.class, MultiTenancyMessagingConfiguration.class, MetricsConfiguration.class, LayoutparserServiceProcessorConfiguration.class, StorageAutoConfiguration.class})
-@EnableFeignClients
+@EnableFeignClients(basePackageClasses = TenantsClient.class)
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})
public class Application {
diff --git a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/graph/DocumentGraphEntityInsertionTest.java b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/graph/DocumentGraphEntityInsertionTest.java
index 3e27b20..7dfd8db 100644
--- a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/graph/DocumentGraphEntityInsertionTest.java
+++ b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/graph/DocumentGraphEntityInsertionTest.java
@@ -121,8 +121,8 @@ public class DocumentGraphEntityInsertionTest extends BuildDocumentGraphTest {
DocumentGraph documentGraph = buildGraph("files/crafted document");
TableNode table = (TableNode) documentGraph.getTableOfContents()//
.streamAllEntriesInOrder()//
- .filter(entry -> entry.type().equals(NodeType.TABLE))//
- .map(TableOfContents.Entry::node)//
+ .filter(entry -> entry.getType().equals(NodeType.TABLE))//
+ .map(TableOfContents.Entry::getNode)//
.findFirst().orElseThrow();
assertEquals(5, table.getNumberOfCols());
assertEquals(4, table.getNumberOfRows());
@@ -151,9 +151,9 @@ public class DocumentGraphEntityInsertionTest extends BuildDocumentGraphTest {
DocumentGraph documentGraph = buildGraph("files/S-Metolachlor_RAR_01_Volume_1_2018-09-06");
TableNode table = (TableNode) documentGraph.getTableOfContents()
.streamAllEntriesInOrder()
- .filter(entry -> entry.node().getPages().stream().anyMatch(page -> page.getNumber() == 22))
- .filter(entry -> entry.type().equals(NodeType.TABLE))
- .map(TableOfContents.Entry::node)
+ .filter(entry -> entry.getNode().getPages().stream().anyMatch(page -> page.getNumber() == 22))
+ .filter(entry -> entry.getType().equals(NodeType.TABLE))
+ .map(TableOfContents.Entry::getNode)
.findFirst()
.orElseThrow();
assertEquals(5, table.getNumberOfCols());
diff --git a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/visualizations/PdfDraw.java b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/visualizations/PdfDraw.java
index 70b1275..b47b459 100644
--- a/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/visualizations/PdfDraw.java
+++ b/layoutparser-service/layoutparser-service-server/src/test/java/com/knecon/fforesight/service/layoutparser/server/utils/visualizations/PdfDraw.java
@@ -138,7 +138,7 @@ public class PdfDraw {
private static Options buildStandardOptionsForNodes(TableOfContents.Entry entry) {
- return Options.builder().stroke(true).strokeColor(switch (entry.type()) {
+ return Options.builder().stroke(true).strokeColor(switch (entry.getType()) {
case DOCUMENT -> Color.LIGHT_GRAY;
case HEADER, FOOTER -> Color.GREEN;
case PARAGRAPH -> Color.BLUE;
@@ -153,20 +153,20 @@ public class PdfDraw {
private static void drawBBoxAndLabelAndNumberOnPage(PDDocument document, TableOfContents.Entry entry, Options options) {
- Map rectanglesPerPage = entry.node().getBBox();
+ Map rectanglesPerPage = entry.getNode().getBBox();
rectanglesPerPage.forEach((page, rectangle2D) -> {
- if (entry.type() == NodeType.SECTION) {
+ if (entry.getType() == NodeType.SECTION) {
rectangle2D = RectangleTransformations.pad(rectangle2D, 10, 10);
}
drawRectangle2DList(document, page.getNumber(), List.of(rectangle2D), options);
- drawText(buildString(entry), document, new Point2D.Double(rectangle2D.getMinX(), rectangle2D.getMaxY() + 2), page.getNumber(), options, entry.type() == NodeType.TABLE_CELL);
+ drawText(buildString(entry), document, new Point2D.Double(rectangle2D.getMinX(), rectangle2D.getMaxY() + 2), page.getNumber(), options, entry.getType() == NodeType.TABLE_CELL);
});
}
private static String buildString(TableOfContents.Entry entry) {
- return entry.node().getNumberOnPage() + ": " + entry.tocId() + ": " + entry.type().toString();
+ return entry.getNode().getNumberOnPage() + ": " + entry.getTocId() + ": " + entry.getType();
}
}
\ No newline at end of file
diff --git a/layoutparser-service/pom.xml b/layoutparser-service/pom.xml
index 8c8cc55..b48b83d 100644
--- a/layoutparser-service/pom.xml
+++ b/layoutparser-service/pom.xml
@@ -4,11 +4,13 @@
4.0.0
- com.knecon.fforesight
- layoutparser
- 1.0.0
+ com.iqser.red
+ platform-dependency
+ 1.17.0
+
+ com.knecon.fforesight
layoutparser-service
1.0.0
@@ -25,10 +27,12 @@
2.13.2
2.0.7
3.0.0-alpha2
+ 1.18.26
3.0.1
2022.0.1
2.15.0-rc2
1.9.9
+
UTF-8
diff --git a/pom.xml b/pom.xml
index 837b38f..a1764f6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,11 +3,6 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 3.0.1
-
com.knecon.fforesight
layoutparser