diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java index 8a47353450db35399e0a2117c2e99296271d5a5c..af561ff948a92bee781a4745cd9b98af4ece0c8e 100644 --- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java +++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaMessageMapper.java @@ -11,9 +11,10 @@ import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.FormHeader; import de.ozgcloud.eingang.common.formdata.IncomingFile; import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier; +import de.ozgcloud.eingang.semantik.enginebased.FilesMapperHelper; import de.ozgcloud.eingang.xdomea.XdomeaMessageData; -@Mapper +@Mapper(imports = FilesMapperHelper.class) interface XtaMessageMapper { int VORGANG_NUMMER_SUFFIX_LENGTH = 4; @@ -22,9 +23,8 @@ interface XtaMessageMapper { @Mapping(target = "id", ignore = true) @Mapping(target = "zustaendigeStelle", ignore = true) @Mapping(target = "header", source = "metaData") - @Mapping(target = "numberOfAttachments", ignore = true) - // TODO: Eine Lösung, bei der fromData nicht zweimal gebaut wird wäre gut - @Mapping(target = "numberOfRepresentations", dependsOn = "representations", expression = "java(formData.build().getRepresentations().size())") + @Mapping(target = "numberOfAttachments", expression = "java(FilesMapperHelper.countAttachedFiles(xdomeaMessageData.attachments()))") + @Mapping(target = "numberOfRepresentations", dependsOn = "representations", expression = "java(getRepresentations(xdomeaMessageData).size())") @Mapping(target = "representations", source = "xdomeaMessageData") @Mapping(target = "representation", ignore = true) @Mapping(target = "attachment", ignore = true) diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java index d96b24823708bf07e7fa7d5252567fc9ebc52e5d..b9bcda822a302872474e1c4341cbe08b11675b99 100644 --- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java +++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMapperTest.java @@ -46,6 +46,13 @@ class XtaMessageMapperTest { assertThat(formData.getRepresentations()).containsExactly(xdomeaMessageData.metadataFile(), xdomeaMessageData.representations().getFirst()); } + @Test + void shouldSetNumberOfAttachments() { + var formData = doMapping(); + + assertThat(formData.getNumberOfAttachments()).isEqualTo(1); + } + @Test void shouldSetNumberOfRepresentations() { var formData = doMapping();