RED-9139: refactor some code in DocumentGraphMapper
This commit is contained in:
parent
8769922bf2
commit
e8dc37374e
@ -10,7 +10,6 @@ import java.util.HashSet;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.NoSuchElementException;
|
|
||||||
|
|
||||||
import com.iqser.red.service.redaction.v1.server.data.DocumentData;
|
import com.iqser.red.service.redaction.v1.server.data.DocumentData;
|
||||||
import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree;
|
import com.iqser.red.service.redaction.v1.server.model.document.DocumentTree;
|
||||||
@ -45,15 +44,15 @@ public class DocumentGraphMapper {
|
|||||||
DocumentTree documentTree = new DocumentTree(document);
|
DocumentTree documentTree = new DocumentTree(document);
|
||||||
Context context = new Context(documentData, documentTree);
|
Context context = new Context(documentData, documentTree);
|
||||||
|
|
||||||
context.pages.addAll(documentData.getDocumentPages().getDocumentPagesList()
|
context.pageData.addAll(documentData.getDocumentPages().getDocumentPagesList()
|
||||||
.stream()
|
.stream()
|
||||||
.map(DocumentGraphMapper::buildPage)
|
.map(DocumentGraphMapper::buildPage)
|
||||||
.toList());
|
.toList());
|
||||||
|
|
||||||
context.documentTree.getRoot().getChildren().addAll(buildEntries(documentData.getDocumentStructure().getRoot().getChildrenList(), context));
|
context.documentTree.getRoot().getChildren().addAll(buildEntries(documentData.getDocumentStructure().getRoot().getChildrenList(), context));
|
||||||
|
|
||||||
document.setDocumentTree(context.documentTree);
|
document.setDocumentTree(context.documentTree);
|
||||||
document.setPages(new HashSet<>(context.pages));
|
document.setPages(new HashSet<>(context.pageData));
|
||||||
document.setNumberOfPages(documentData.getDocumentPages().getDocumentPagesCount());
|
document.setNumberOfPages(documentData.getDocumentPages().getDocumentPagesCount());
|
||||||
|
|
||||||
document.setTextBlock(document.getTextBlock());
|
document.setTextBlock(document.getTextBlock());
|
||||||
@ -204,13 +203,10 @@ public class DocumentGraphMapper {
|
|||||||
|
|
||||||
private AtomicTextBlock getAtomicTextBlock(Context context, SemanticNode parent, Long atomicTextBlockId) {
|
private AtomicTextBlock getAtomicTextBlock(Context context, SemanticNode parent, Long atomicTextBlockId) {
|
||||||
|
|
||||||
return AtomicTextBlock.fromAtomicTextBlockData(context.documentTextDataBlockData.getDocumentTextDataList()
|
return AtomicTextBlock.fromAtomicTextBlockData(context.documentTextData.getDocumentTextData(Math.toIntExact(atomicTextBlockId)),
|
||||||
.get(Math.toIntExact(atomicTextBlockId)),
|
context.documentPositionData.getDocumentPositionData(Math.toIntExact(atomicTextBlockId)),
|
||||||
context.atomicPositionBlockData.getDocumentPositionDataList()
|
|
||||||
.get(Math.toIntExact(atomicTextBlockId)),
|
|
||||||
parent,
|
parent,
|
||||||
context.getPage(context.documentTextDataBlockData.getDocumentTextDataList()
|
context.getPage(context.documentTextData.getDocumentTextData(Math.toIntExact(atomicTextBlockId)).getPage()));
|
||||||
.get(Math.toIntExact(atomicTextBlockId)).getPage()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -223,27 +219,26 @@ public class DocumentGraphMapper {
|
|||||||
static final class Context {
|
static final class Context {
|
||||||
|
|
||||||
private final DocumentTree documentTree;
|
private final DocumentTree documentTree;
|
||||||
private final List<Page> pages;
|
private final List<Page> pageData;
|
||||||
private final AllDocumentTextData documentTextDataBlockData;
|
private final AllDocumentTextData documentTextData;
|
||||||
private final AllDocumentPositionData atomicPositionBlockData;
|
private final AllDocumentPositionData documentPositionData;
|
||||||
|
|
||||||
|
|
||||||
Context(DocumentData documentData, DocumentTree documentTree) {
|
Context(DocumentData documentData, DocumentTree documentTree) {
|
||||||
|
|
||||||
this.documentTree = documentTree;
|
this.documentTree = documentTree;
|
||||||
this.pages = new LinkedList<>();
|
this.pageData = new ArrayList<>();
|
||||||
this.documentTextDataBlockData = documentData.getDocumentTextData();
|
this.documentTextData = documentData.getDocumentTextData();
|
||||||
this.atomicPositionBlockData = documentData.getDocumentPositionData();
|
this.documentPositionData = documentData.getDocumentPositionData();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Page getPage(Long pageIndex) {
|
public Page getPage(Long pageIndex) {
|
||||||
|
|
||||||
return pages.stream()
|
Page page = pageData.get(Math.toIntExact(pageIndex) - 1);
|
||||||
.filter(page -> page.getNumber() == Math.toIntExact(pageIndex))
|
assert page.getNumber() == Math.toIntExact(pageIndex);
|
||||||
.findFirst()
|
return page;
|
||||||
.orElseThrow(() -> new NoSuchElementException(String.format("ClassificationPage with number %d not found", pageIndex)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user