RED-6009 - Document Tree Structure

* fix nullpointer, if empty entity falls on end of TextBlock
This commit is contained in:
Kilian Schuettler 2023-05-02 17:27:15 +02:00
parent 7fd6e1b9e7
commit 672aa0c78d

View File

@ -3,6 +3,7 @@ package com.iqser.red.service.redaction.v1.server.layoutparsing.document.graph.t
import static java.lang.String.format; import static java.lang.String.format;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -103,13 +104,18 @@ public class AtomicTextBlock implements TextBlock {
if (!containsBoundary(stringBoundary)) { if (!containsBoundary(stringBoundary)) {
throw new IndexOutOfBoundsException(format("%s is out of bounds for %s", stringBoundary, this.boundary)); throw new IndexOutOfBoundsException(format("%s is out of bounds for %s", stringBoundary, this.boundary));
} }
if (stringBoundary.length() == 0) {
if (stringBoundary.end() == this.boundary.end()) { return Collections.emptyList();
return positions.subList(stringIdxToPositionIdx.get(stringBoundary.start() - this.boundary.start()), positions.size());
} }
return positions.subList(stringIdxToPositionIdx.get(stringBoundary.start() - this.boundary.start()), int startPositionIdx = stringIdxToPositionIdx.get(stringBoundary.start() - this.boundary.start());
stringIdxToPositionIdx.get(stringBoundary.end() - this.boundary.start()));
if (stringBoundary.end() == this.boundary.end()) {
return positions.subList(startPositionIdx, positions.size());
}
return positions.subList(startPositionIdx, stringIdxToPositionIdx.get(stringBoundary.end() - this.boundary.start()));
} }