Skip to content
Snippets Groups Projects
Commit 32522172 authored by Lukas Malte Monnerjahn's avatar Lukas Malte Monnerjahn
Browse files

Merge remote-tracking branch...

Merge remote-tracking branch 'origin/OZG-5413-Senden-OD-Mantelantrag-an-AFM-Eingangsstelle-via-NB' into OZG-5413-Senden-OD-Mantelantrag-an-AFM-Eingangsstelle-via-NB
parents 53a8f701 67c67295
Branches
Tags
No related merge requests found
...@@ -25,35 +25,52 @@ public class XdomeaMessageDataMapper { ...@@ -25,35 +25,52 @@ public class XdomeaMessageDataMapper {
public XdomeaMessageData mapIncomingFilesToXdomeaMessageData(List<IncomingFile> incomingFileList) { public XdomeaMessageData mapIncomingFilesToXdomeaMessageData(List<IncomingFile> incomingFileList) {
var xdomeaXMLFile = findXdomeaXMLFile(incomingFileList); var xdomeaXMLFile = findXdomeaXMLFile(incomingFileList);
var representationFileNames = valueReader.readRepresentationFileNames(xdomeaXMLFile); var representationFileNames = valueReader.readRepresentationFileNames(xdomeaXMLFile);
var attachmentFileNames = getFileNamesExcluding(
incomingFileList,
Stream.concat(Stream.of(xdomeaXMLFile.getName()), representationFileNames.stream())
);
var fileNameToFileMap = incomingFileList.stream() var fileNameToFileMap = createFileNameToIncomingFileMap(incomingFileList);
.collect(Collectors.toMap(IncomingFile::getName, file -> file));
return XdomeaMessageData.builder() return XdomeaMessageData.builder()
.metadataFile(xdomeaXMLFile) .metadataFile(xdomeaXMLFile)
// Representations are incoming files which are referenced in the xdomea-xml in 'Dateiname' elements .representations(getRepresentations(representationFileNames, fileNameToFileMap))
.representations(getFilesByName( .attachments(getAttachments(attachmentFileNames, fileNameToFileMap))
.build();
}
private Map<String, IncomingFile> createFileNameToIncomingFileMap(List<IncomingFile> incomingFileList) {
return incomingFileList.stream()
.collect(Collectors.toMap(IncomingFile::getName, file -> file));
}
private Stream<String> getFileNamesExcluding(List<IncomingFile> incomingFileList, Stream<String> excludedFileNames) {
return dropNames(
incomingFileList.stream().map(IncomingFile::getName),
excludedFileNames.collect(Collectors.toSet())
);
}
private List<IncomingFile> getRepresentations(List<String> representationFileNames, Map<String, IncomingFile> fileNameToFileMap) {
return getFilesByName(
movePrimaryRepresentationFileNameToFirstPosition(representationFileNames), movePrimaryRepresentationFileNameToFirstPosition(representationFileNames),
fileNameToFileMap fileNameToFileMap
);
}
private List<IncomingFileGroup> getAttachments(Stream<String> attachmentFileNames, Map<String, IncomingFile> fileNameToFileMap) {
return Stream.of(IncomingFileGroup.builder()
.name(ATTACHMENT_GROUP_NAME)
.files(
getFilesByName(
attachmentFileNames,
fileNameToFileMap
) )
) )
// Attachments are all incoming files which are neither the xdomea-xml nor representations
.attachments(Stream.of(IncomingFileGroup.builder()
.name(ATTACHMENT_GROUP_NAME)
.files(getFilesByName(
dropNames(
incomingFileList.stream().map(IncomingFile::getName),
Stream.concat(Stream.of(xdomeaXMLFile.getName()), representationFileNames.stream())
.collect(Collectors.toSet())
),
fileNameToFileMap))
.build()) .build())
// Do not include empty attachment group // Do not include empty attachment group
.filter(group -> !group.getFiles().isEmpty()) .filter(group -> !group.getFiles().isEmpty())
.toList() .toList();
)
.build();
} }
private Stream<String> movePrimaryRepresentationFileNameToFirstPosition(List<String> representationFileNames) { private Stream<String> movePrimaryRepresentationFileNameToFirstPosition(List<String> representationFileNames) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment