diff --git a/nachrichten-manager-postfach-interface/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachAddressIdentifier.java b/nachrichten-manager-postfach-interface/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachAddressIdentifier.java index 824cb1268407e94ee32b51cee7afca21ad4df37a..2ead26b3a06676ddcbc149aae1b9c717cfd7f0e3 100644 --- a/nachrichten-manager-postfach-interface/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachAddressIdentifier.java +++ b/nachrichten-manager-postfach-interface/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachAddressIdentifier.java @@ -28,4 +28,6 @@ public interface PostfachAddressIdentifier { default boolean isStringBasedIdentifier() { return false; } + + String getStringRepresentation(); } diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/StringBasedIdentifier.java b/nachrichten-manager-postfach-interface/src/main/java/de/ozgcloud/nachrichten/postfach/StringBasedIdentifier.java similarity index 94% rename from nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/StringBasedIdentifier.java rename to nachrichten-manager-postfach-interface/src/main/java/de/ozgcloud/nachrichten/postfach/StringBasedIdentifier.java index 5724f8624648d2b5deb69a838aeefc51b8123bc9..5940c9ff7a478504470449e3df06beb87f44ddd5 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/StringBasedIdentifier.java +++ b/nachrichten-manager-postfach-interface/src/main/java/de/ozgcloud/nachrichten/postfach/StringBasedIdentifier.java @@ -26,10 +26,8 @@ package de.ozgcloud.nachrichten.postfach; import jakarta.validation.constraints.NotBlank; import lombok.Builder; -import lombok.Getter; @Builder -@Getter public class StringBasedIdentifier implements PostfachAddressIdentifier { @NotBlank @@ -44,4 +42,9 @@ public class StringBasedIdentifier implements PostfachAddressIdentifier { public String toString() { return postfachId; } + + @Override + public String getStringRepresentation() { + return postfachId; + } } diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/info/InfoManagerService.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/info/InfoManagerService.java index ed617fab860928f65acded652b642a15d8c8dd37..351908590f952b45b78bcf3a0911709e97d7551f 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/info/InfoManagerService.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/info/InfoManagerService.java @@ -34,7 +34,6 @@ import de.ozgcloud.nachrichten.postfach.PostfachAddress; import de.ozgcloud.nachrichten.postfach.PostfachException; import de.ozgcloud.nachrichten.postfach.PostfachMessageCode; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; -import de.ozgcloud.nachrichten.postfach.StringBasedIdentifier; import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -74,7 +73,7 @@ public class InfoManagerService { var postfachIdentifier = address.getIdentifier(); if (postfachIdentifier.isStringBasedIdentifier()) { - return ((StringBasedIdentifier) postfachIdentifier).getPostfachId(); + return postfachIdentifier.getStringRepresentation(); } else { throw new IllegalStateException("Illegal Type of Postfach Identifier: " + postfachIdentifier.getClass().getName()); } diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java index c521e7dbdb02f729df1d310d89060fbcbefc5c0f..5a3a0fb073de84613e51faf616d9815ce562b8d4 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/PostfachNachrichtMapper.java @@ -239,7 +239,6 @@ public abstract class PostfachNachrichtMapper { } private Map<String, Object> buildPostfachAddressIdentifierMap(PostfachAddress postfachAddress) { - var identifier = (StringBasedIdentifier) postfachAddress.getIdentifier(); - return Map.of(PostfachAddress.FIELD_POSTFACH_ID, identifier.getPostfachId()); + return Map.of(PostfachAddress.FIELD_POSTFACH_ID, postfachAddress.getIdentifier().getStringRepresentation()); } } \ No newline at end of file diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdPostfachNachrichtMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdPostfachNachrichtMapper.java index 9c33343cfeab08ed4aed145415c38402281909a3..8787cb609a1074f07e2f86011b8cd13b8a827789 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdPostfachNachrichtMapper.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/bayernid/BayernIdPostfachNachrichtMapper.java @@ -38,7 +38,6 @@ import org.mapstruct.ReportingPolicy; import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.nachrichten.postfach.PostfachAddress; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; -import de.ozgcloud.nachrichten.postfach.StringBasedIdentifier; import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAbsender; import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcAttachmentMetadata; import de.ozgcloud.nachrichten.postfach.bayernid.proxy.GrpcBayernIdMessageMetadata; @@ -85,7 +84,7 @@ interface BayernIdPostfachNachrichtMapper { BayernIdResponse fromSendBayernIdMessageResponse(GrpcSendBayernIdMessageResponse response); default String toPostkorbId(PostfachAddress postfachAddress) { - return ((StringBasedIdentifier) postfachAddress.getIdentifier()).getPostfachId(); + return (postfachAddress.getIdentifier()).getStringRepresentation(); } @Condition diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachMessageMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachMessageMapper.java index 0a2838ee55171c0dfef8b313f5418be12a124aaa..75ec7eaddce83a064d26ed61e58340cfb5156455 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachMessageMapper.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/postfach/osi/OsiPostfachMessageMapper.java @@ -35,6 +35,7 @@ import org.springframework.beans.factory.annotation.Autowired; import de.ozgcloud.nachrichten.postfach.FileId; import de.ozgcloud.nachrichten.postfach.PostfachAddress; +import de.ozgcloud.nachrichten.postfach.PostfachAddressIdentifier; import de.ozgcloud.nachrichten.postfach.PostfachNachricht; import de.ozgcloud.nachrichten.postfach.StringBasedIdentifier; @@ -78,9 +79,7 @@ public abstract class OsiPostfachMessageMapper { String toPostfachId(PostfachNachricht nachricht) { return Optional.ofNullable(nachricht.getPostfachAddress()) .map(PostfachAddress::getIdentifier) - .filter(StringBasedIdentifier.class::isInstance) - .map(StringBasedIdentifier.class::cast) - .map(StringBasedIdentifier::getPostfachId) + .map(PostfachAddressIdentifier::getStringRepresentation) .orElse(StringUtils.EMPTY); } diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerServiceTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerServiceTest.java index 55f8368dacd8eae7220957419bee650dec58fb33..ccf343a7578c1dfd68f88a8a895395c25b1405c3 100644 --- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerServiceTest.java +++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/info/InfoManagerServiceTest.java @@ -28,6 +28,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; +import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -141,7 +142,13 @@ class InfoManagerServiceTest { @Test void shouldThrowExceptionForUnkownIdentifer() { var identifier = new PostfachAddressIdentifier() { + + @Override + public String getStringRepresentation() { + return StringUtils.EMPTY; + } }; + var address = PostfachAddressTestFactory.createBuilder().identifier(identifier).build(); assertThatThrownBy(() -> service.getPostfachId(address)).isInstanceOf(IllegalStateException.class);