diff --git a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/redaction/DocumentStructure.java b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/redaction/DocumentStructure.java index c349ab5..c7a8499 100644 --- a/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/redaction/DocumentStructure.java +++ b/layoutparser-service/layoutparser-service-internal-api/src/main/java/com/knecon/fforesight/service/layoutparser/internal/api/data/redaction/DocumentStructure.java @@ -43,7 +43,7 @@ public class DocumentStructure implements Serializable { public static final String POSITION = "position"; public static final String ID = "id"; - public static final String REPRESENTATION_HASH="representationHash"; + public static final String REPRESENTATION_HASH = "representationHash"; } @@ -69,11 +69,25 @@ public class DocumentStructure implements Serializable { public static Rectangle2D parseRectangle2D(String bBox) { - List floats = Arrays.stream(bBox.split(RECTANGLE_DELIMITER)).map(Float::parseFloat).toList(); + List floats = Arrays.stream(bBox.split(RECTANGLE_DELIMITER)) + .map(Float::parseFloat) + .toList(); return new Rectangle2D.Float(floats.get(0), floats.get(1), floats.get(2), floats.get(3)); } + public static double[] parseRepresentationVector(String representationHash) { + + String[] stringArray = representationHash.split("[,\\s]+"); + double[] doubleArray = new double[stringArray.length]; + for (int i = 0; i < stringArray.length; i++) { + doubleArray[i] = Double.parseDouble(stringArray[i]); + } + + return doubleArray; + } + + public EntryData get(List tocId) { if (tocId.isEmpty()) { @@ -89,19 +103,24 @@ public class DocumentStructure implements Serializable { public Stream streamAllEntries() { - return Stream.concat(Stream.of(root), root.children.stream()).flatMap(DocumentStructure::flatten); + return Stream.concat(Stream.of(root), root.children.stream()) + .flatMap(DocumentStructure::flatten); } public String toString() { - return String.join("\n", streamAllEntries().map(EntryData::toString).toList()); + return String.join("\n", + streamAllEntries().map(EntryData::toString) + .toList()); } private static Stream flatten(EntryData entry) { - return Stream.concat(Stream.of(entry), entry.children.stream().flatMap(DocumentStructure::flatten)); + return Stream.concat(Stream.of(entry), + entry.children.stream() + .flatMap(DocumentStructure::flatten)); } diff --git a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/mapper/PropertiesMapper.java b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/mapper/PropertiesMapper.java index f4ebbd5..453838a 100644 --- a/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/mapper/PropertiesMapper.java +++ b/layoutparser-service/layoutparser-service-processor/src/main/java/com/knecon/fforesight/service/layoutparser/processor/services/mapper/PropertiesMapper.java @@ -24,6 +24,7 @@ public class PropertiesMapper { properties.put(DocumentStructure.ImageProperties.TRANSPARENT, String.valueOf(image.isTransparent())); properties.put(DocumentStructure.ImageProperties.POSITION, toString(image.getPosition())); properties.put(DocumentStructure.ImageProperties.ID, image.getId()); + properties.put(DocumentStructure.ImageProperties.REPRESENTATION_HASH, image.getRepresentationHash()); return properties; }