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); } }