From 9e835f65e792bc36d880f946932ad2eeeebbd211 Mon Sep 17 00:00:00 2001 From: cgw981 Date: Sun, 9 Jul 2023 18:21:54 +0900 Subject: [PATCH] Added paradigm for UseCase input validation. --- .../com/hexagonaldemo/paymentapi/common/model/UseCase.java | 2 ++ .../paymentapi/common/usecase/BeanAwareUseCasePublisher.java | 3 +++ 2 files changed, 5 insertions(+) diff --git a/payment-api/domain/src/main/java/com/hexagonaldemo/paymentapi/common/model/UseCase.java b/payment-api/domain/src/main/java/com/hexagonaldemo/paymentapi/common/model/UseCase.java index 54e0db6..c1408d2 100644 --- a/payment-api/domain/src/main/java/com/hexagonaldemo/paymentapi/common/model/UseCase.java +++ b/payment-api/domain/src/main/java/com/hexagonaldemo/paymentapi/common/model/UseCase.java @@ -1,4 +1,6 @@ package com.hexagonaldemo.paymentapi.common.model; public interface UseCase { + + default void isSatisfied() {} } diff --git a/payment-api/domain/src/main/java/com/hexagonaldemo/paymentapi/common/usecase/BeanAwareUseCasePublisher.java b/payment-api/domain/src/main/java/com/hexagonaldemo/paymentapi/common/usecase/BeanAwareUseCasePublisher.java index b5da8ca..f615b03 100644 --- a/payment-api/domain/src/main/java/com/hexagonaldemo/paymentapi/common/usecase/BeanAwareUseCasePublisher.java +++ b/payment-api/domain/src/main/java/com/hexagonaldemo/paymentapi/common/usecase/BeanAwareUseCasePublisher.java @@ -16,6 +16,7 @@ public class BeanAwareUseCasePublisher implements UseCasePublisher { public R publish(Class returnClass, T useCase) { var useCaseHandler = (UseCaseHandler) UseCaseHandlerRegistry.INSTANCE.detectUseCaseHandlerFrom(useCase.getClass()); validateUseCaseHandlerDetection(useCase, useCaseHandler); + useCase.isSatisfied(); return useCaseHandler.handle(useCase); } @@ -26,9 +27,11 @@ public void publish(T useCase) { if (Objects.isNull(voidUseCaseHandler)) { var useCaseHandler = (UseCaseHandler) UseCaseHandlerRegistry.INSTANCE.detectUseCaseHandlerFrom(useCase.getClass()); validateUseCaseHandlerDetection(useCase, useCaseHandler); + useCase.isSatisfied(); useCaseHandler.handle(useCase); } else { validateVoidUseCaseHandlerDetection(useCase, voidUseCaseHandler); + useCase.isSatisfied(); voidUseCaseHandler.handle(useCase); } }