From e8dc37374e596d5e6fda9615eb503e2917f40ac9 Mon Sep 17 00:00:00 2001 From: Kilian Schuettler Date: Fri, 15 Nov 2024 15:22:40 +0100 Subject: [PATCH] RED-9139: refactor some code in DocumentGraphMapper --- .../v1/server/mapper/DocumentGraphMapper.java | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/mapper/DocumentGraphMapper.java b/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/mapper/DocumentGraphMapper.java index 3d1c8136..7faa7423 100644 --- a/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/mapper/DocumentGraphMapper.java +++ b/redaction-service-v1/document/src/main/java/com/iqser/red/service/redaction/v1/server/mapper/DocumentGraphMapper.java @@ -10,7 +10,6 @@ import java.util.HashSet; import java.util.LinkedList; import java.util.List; 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.model.document.DocumentTree; @@ -45,15 +44,15 @@ public class DocumentGraphMapper { DocumentTree documentTree = new DocumentTree(document); Context context = new Context(documentData, documentTree); - context.pages.addAll(documentData.getDocumentPages().getDocumentPagesList() - .stream() - .map(DocumentGraphMapper::buildPage) - .toList()); + context.pageData.addAll(documentData.getDocumentPages().getDocumentPagesList() + .stream() + .map(DocumentGraphMapper::buildPage) + .toList()); context.documentTree.getRoot().getChildren().addAll(buildEntries(documentData.getDocumentStructure().getRoot().getChildrenList(), context)); document.setDocumentTree(context.documentTree); - document.setPages(new HashSet<>(context.pages)); + document.setPages(new HashSet<>(context.pageData)); document.setNumberOfPages(documentData.getDocumentPages().getDocumentPagesCount()); document.setTextBlock(document.getTextBlock()); @@ -204,13 +203,10 @@ public class DocumentGraphMapper { private AtomicTextBlock getAtomicTextBlock(Context context, SemanticNode parent, Long atomicTextBlockId) { - return AtomicTextBlock.fromAtomicTextBlockData(context.documentTextDataBlockData.getDocumentTextDataList() - .get(Math.toIntExact(atomicTextBlockId)), - context.atomicPositionBlockData.getDocumentPositionDataList() - .get(Math.toIntExact(atomicTextBlockId)), + return AtomicTextBlock.fromAtomicTextBlockData(context.documentTextData.getDocumentTextData(Math.toIntExact(atomicTextBlockId)), + context.documentPositionData.getDocumentPositionData(Math.toIntExact(atomicTextBlockId)), parent, - context.getPage(context.documentTextDataBlockData.getDocumentTextDataList() - .get(Math.toIntExact(atomicTextBlockId)).getPage())); + context.getPage(context.documentTextData.getDocumentTextData(Math.toIntExact(atomicTextBlockId)).getPage())); } @@ -223,27 +219,26 @@ public class DocumentGraphMapper { static final class Context { private final DocumentTree documentTree; - private final List pages; - private final AllDocumentTextData documentTextDataBlockData; - private final AllDocumentPositionData atomicPositionBlockData; + private final List pageData; + private final AllDocumentTextData documentTextData; + private final AllDocumentPositionData documentPositionData; Context(DocumentData documentData, DocumentTree documentTree) { this.documentTree = documentTree; - this.pages = new LinkedList<>(); - this.documentTextDataBlockData = documentData.getDocumentTextData(); - this.atomicPositionBlockData = documentData.getDocumentPositionData(); + this.pageData = new ArrayList<>(); + this.documentTextData = documentData.getDocumentTextData(); + this.documentPositionData = documentData.getDocumentPositionData(); } public Page getPage(Long pageIndex) { - return pages.stream() - .filter(page -> page.getNumber() == Math.toIntExact(pageIndex)) - .findFirst() - .orElseThrow(() -> new NoSuchElementException(String.format("ClassificationPage with number %d not found", pageIndex))); + Page page = pageData.get(Math.toIntExact(pageIndex) - 1); + assert page.getNumber() == Math.toIntExact(pageIndex); + return page; } }