diff --git a/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java b/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java index 81bc86c..64bc2be 100644 --- a/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java +++ b/src/main/java/com/serliunx/statemanagement/machine/AbstractStateMachine.java @@ -185,6 +185,14 @@ public abstract class AbstractStateMachine extends AbstractStateManager im } } + @Override + public void publish(Object event) { + List>> consumers = context.eventRegistries.get(event); + if (consumers != null) { + consumers.forEach(consumer -> consumer.accept(this)); + } + } + @Override public S switchPrevAndGet() { return switchPrevAndGet(true); diff --git a/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java b/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java index 1e20b10..b001399 100644 --- a/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java +++ b/src/main/java/com/serliunx/statemanagement/machine/DefaultConcurrentStateMachine.java @@ -143,8 +143,8 @@ public class DefaultConcurrentStateMachine extends AbstractStateMachine im } @Override - public void publish(Object event) { - + public S current() { + return get(index.get()); } /** diff --git a/src/main/java/com/serliunx/statemanagement/machine/StandardStateMachine.java b/src/main/java/com/serliunx/statemanagement/machine/StandardStateMachine.java index 213d9e1..143a201 100644 --- a/src/main/java/com/serliunx/statemanagement/machine/StandardStateMachine.java +++ b/src/main/java/com/serliunx/statemanagement/machine/StandardStateMachine.java @@ -35,12 +35,4 @@ public class StandardStateMachine extends AbstractStateMachine implements ) { super(stateList, entryHandlers, leaveHandlers, exchangeHandlers, eventRegistries, executor, async); } - - @Override - public void publish(Object event) { - List>> consumers = context.eventRegistries.get(event); - if (consumers != null) { - consumers.forEach(consumer -> consumer.accept(this)); - } - } }