RED-3813: Recategorize same image as experimental feature
working on pushing properties to persistence service
This commit is contained in:
parent
a5fcebce30
commit
9be672c728
@ -43,7 +43,7 @@ public class DocumentStructure implements Serializable {
|
|||||||
public static final String POSITION = "position";
|
public static final String POSITION = "position";
|
||||||
public static final String ID = "id";
|
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) {
|
public static Rectangle2D parseRectangle2D(String bBox) {
|
||||||
|
|
||||||
List<Float> floats = Arrays.stream(bBox.split(RECTANGLE_DELIMITER)).map(Float::parseFloat).toList();
|
List<Float> 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));
|
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<Integer> tocId) {
|
public EntryData get(List<Integer> tocId) {
|
||||||
|
|
||||||
if (tocId.isEmpty()) {
|
if (tocId.isEmpty()) {
|
||||||
@ -89,19 +103,24 @@ public class DocumentStructure implements Serializable {
|
|||||||
|
|
||||||
public Stream<EntryData> streamAllEntries() {
|
public Stream<EntryData> 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() {
|
public String toString() {
|
||||||
|
|
||||||
return String.join("\n", streamAllEntries().map(EntryData::toString).toList());
|
return String.join("\n",
|
||||||
|
streamAllEntries().map(EntryData::toString)
|
||||||
|
.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static Stream<EntryData> flatten(EntryData entry) {
|
private static Stream<EntryData> 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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -24,6 +24,7 @@ public class PropertiesMapper {
|
|||||||
properties.put(DocumentStructure.ImageProperties.TRANSPARENT, String.valueOf(image.isTransparent()));
|
properties.put(DocumentStructure.ImageProperties.TRANSPARENT, String.valueOf(image.isTransparent()));
|
||||||
properties.put(DocumentStructure.ImageProperties.POSITION, toString(image.getPosition()));
|
properties.put(DocumentStructure.ImageProperties.POSITION, toString(image.getPosition()));
|
||||||
properties.put(DocumentStructure.ImageProperties.ID, image.getId());
|
properties.put(DocumentStructure.ImageProperties.ID, image.getId());
|
||||||
|
properties.put(DocumentStructure.ImageProperties.REPRESENTATION_HASH, image.getRepresentationHash());
|
||||||
return properties;
|
return properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user