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