diff --git a/src/main/java/com/serliunx/statemanagement/exception/StateException.java b/src/main/java/com/serliunx/statemanagement/exception/StateException.java index f5db758..c909c09 100644 --- a/src/main/java/com/serliunx/statemanagement/exception/StateException.java +++ b/src/main/java/com/serliunx/statemanagement/exception/StateException.java @@ -1,6 +1,8 @@ package com.serliunx.statemanagement.exception; /** + * 状态机异常 + * * @author SerLiunx * @version 1.0.0 * @since 2024/12/28 diff --git a/src/main/java/com/serliunx/statemanagement/machine/StateMachineContext.java b/src/main/java/com/serliunx/statemanagement/machine/StateMachineContext.java index 6487bd2..20bf5ea 100644 --- a/src/main/java/com/serliunx/statemanagement/machine/StateMachineContext.java +++ b/src/main/java/com/serliunx/statemanagement/machine/StateMachineContext.java @@ -13,6 +13,8 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; /** + * 状态机上下文集合, 用于构建参数封装 + * * @author SerLiunx * @version 1.0.0 * @since 2025/2/2 diff --git a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerProcessParams.java b/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerProcessParams.java index 9f1c2bb..4f07f50 100644 --- a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerProcessParams.java +++ b/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerProcessParams.java @@ -9,7 +9,6 @@ package com.serliunx.statemanagement.machine.handler; * @version 1.0.0 * @since 2024/12/28 */ -@SuppressWarnings("all") public final class StateHandlerProcessParams { /** @@ -29,7 +28,6 @@ public final class StateHandlerProcessParams { * @param from 原状态 * @param to 目标状态 * @param attach 附加参数 - * @param bidirectionalStateManager 状态机内置的状态管理器 */ public StateHandlerProcessParams(S from, S to, Object attach) { this.from = from; diff --git a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerRegistry.java b/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerRegistry.java deleted file mode 100644 index 6485f07..0000000 --- a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerRegistry.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.serliunx.statemanagement.machine.handler; - -/** - * @author SerLiunx - * @version 1.0.0 - * @since 2024/12/28 - */ -public class StateHandlerRegistry { - -} diff --git a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerWrapper.java b/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerWrapper.java index 58c26f1..c8cacc6 100644 --- a/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerWrapper.java +++ b/src/main/java/com/serliunx/statemanagement/machine/handler/StateHandlerWrapper.java @@ -11,7 +11,6 @@ import java.util.concurrent.Executor; * @version 1.0.0 * @since 2024/12/28 */ -@SuppressWarnings("all") public final class StateHandlerWrapper { /** diff --git a/src/main/java/com/serliunx/statemanagement/manager/StateManager.java b/src/main/java/com/serliunx/statemanagement/manager/StateManager.java index dcada0b..bea9940 100644 --- a/src/main/java/com/serliunx/statemanagement/manager/StateManager.java +++ b/src/main/java/com/serliunx/statemanagement/manager/StateManager.java @@ -33,6 +33,7 @@ public interface StateManager { /** * 获取当前状态数量 + * * @return 数量 */ int size(); diff --git a/src/test/java/com/serliunx/statemanagement/MachineTest.java b/src/test/java/com/serliunx/statemanagement/MachineTest.java index 4b40116..73a58e8 100644 --- a/src/test/java/com/serliunx/statemanagement/MachineTest.java +++ b/src/test/java/com/serliunx/statemanagement/MachineTest.java @@ -21,8 +21,11 @@ public class MachineTest { @Test public void testStandardStateMachine() throws Exception { StateMachine stateMachine = StateMachineBuilder.from(PrinterState.values()) - .async(true) + .async(false) .standard() + .exchange(PrinterState.IDLE, PrinterState.SCANNING, h -> { + System.out.println("hello~"); + }) .whenLeave(PrinterState.IDLE, h -> { System.out.println(Thread.currentThread().getName() + ": leave IDLE"); }) @@ -32,28 +35,26 @@ public class MachineTest { .whenEntry(PrinterState.STOPPED, h -> { System.out.println(Thread.currentThread().getName() + ": entry STOPPED, from " + h.getFrom()); }) - .whenHappened(PrinterEvent.TURN_ON, m -> { - m.switchTo(PrinterState.SCANNING); - }) - .whenHappened(PrinterEvent.TURN_OFF, m -> { - if (m.switchTo(PrinterState.STOPPING)) - m.switchTo(PrinterState.STOPPED); - }) .build(); - stateMachine.publish(PrinterEvent.TURN_ON); + stateMachine.switchTo(PrinterState.SCANNING); } @Test public void testConcurrentStateMachine() throws Exception { ConcurrentStateMachine stateMachine = StateMachineBuilder.from(PrinterState.values()) + .async() .whenEntry(PrinterState.STOPPING, h -> { System.out.println(1111); }) + .whenHappened(PrinterEvent.TURN_OFF, l -> { + if (l.switchTo(PrinterState.STOPPING)) + l.switchTo(PrinterState.STOPPED); + }) .concurrent() .build(); - System.out.println(stateMachine.compareAndSet(PrinterState.IDLE, PrinterState.STOPPING, true)); + stateMachine.publish(PrinterEvent.TURN_OFF); stateMachine.close(); }