Create dedicated UnconfirmedOrderException

Create a dedicated UnconfirmedOrderException and use it from the
 OrderAggregate instead of the IllegalStateException

BAEL-2435
This commit is contained in:
Steven van Beelen 2019-07-10 13:27:50 +02:00
parent 65183f082d
commit 97ab713024
2 changed files with 12 additions and 3 deletions

View File

@ -13,6 +13,7 @@ import com.baeldung.axon.coreapi.commands.ShipOrderCommand;
import com.baeldung.axon.coreapi.events.OrderConfirmedEvent; import com.baeldung.axon.coreapi.events.OrderConfirmedEvent;
import com.baeldung.axon.coreapi.events.OrderPlacedEvent; import com.baeldung.axon.coreapi.events.OrderPlacedEvent;
import com.baeldung.axon.coreapi.events.OrderShippedEvent; import com.baeldung.axon.coreapi.events.OrderShippedEvent;
import com.baeldung.axon.coreapi.exceptions.UnconfirmedOrderException;
@Aggregate @Aggregate
public class OrderAggregate { public class OrderAggregate {
@ -34,7 +35,7 @@ public class OrderAggregate {
@CommandHandler @CommandHandler
public void handle(ShipOrderCommand command) { public void handle(ShipOrderCommand command) {
if (!orderConfirmed) { if (!orderConfirmed) {
throw new IllegalStateException("Cannot ship an order which has not been confirmed yet."); throw new UnconfirmedOrderException();
} }
apply(new OrderShippedEvent(orderId)); apply(new OrderShippedEvent(orderId));
@ -43,12 +44,12 @@ public class OrderAggregate {
@EventSourcingHandler @EventSourcingHandler
public void on(OrderPlacedEvent event) { public void on(OrderPlacedEvent event) {
this.orderId = event.getOrderId(); this.orderId = event.getOrderId();
orderConfirmed = false; this.orderConfirmed = false;
} }
@EventSourcingHandler @EventSourcingHandler
public void on(OrderConfirmedEvent event) { public void on(OrderConfirmedEvent event) {
orderConfirmed = true; this.orderConfirmed = true;
} }
protected OrderAggregate() { protected OrderAggregate() {

View File

@ -0,0 +1,8 @@
package com.baeldung.axon.coreapi.exceptions;
public class UnconfirmedOrderException extends IllegalStateException {
public UnconfirmedOrderException() {
super("Cannot ship an order which has not been confirmed yet.");
}
}