diff --git a/readme.md b/readme.md index a44b749..749fdfb 100644 --- a/readme.md +++ b/readme.md @@ -29,8 +29,9 @@ Simple way to use it - to construct an inherited class specified with the type o during transitions. ```java - SimpleFsm simpleFsm = SimpleFsm - ., String>withStates(SimpleFsm::new) + SimpleFsm simpleFsm = Fsm + ., String>from(SimpleFsm::new) + .withStates() .from("init") .withBeforeHandler(fsm -> initBefore.set(true)) .withAfterHandler(fsm -> initAfter.set(true)) diff --git a/src/main/java/me/bvn13/fsm/Fsm.java b/src/main/java/me/bvn13/fsm/Fsm.java index da3b59b..77d9e44 100644 --- a/src/main/java/me/bvn13/fsm/Fsm.java +++ b/src/main/java/me/bvn13/fsm/Fsm.java @@ -54,8 +54,9 @@ import java.util.function.Supplier; * during transitions. *
  *  {@code
- *  SimpleFsm simpleFsm = SimpleFsm
- *    ., String>withStates(SimpleFsm::new)
+ *  SimpleFsm simpleFsm = Fsm
+ *    ., String>from(SimpleFsm::new)
+ *    .withStates()
  *      .from("init")
  *      .withBeforeHandler(fsm -> initBefore.set(true))
  *      .withAfterHandler(fsm -> initAfter.set(true))
@@ -94,8 +95,8 @@ public class Fsm {
      * @param  the class type of Events to be processed
      */
     @SuppressWarnings("unchecked")
-    public static  FsmBuilder withStates(Supplier supplier) {
-        return new FsmBuilder<>(supplier);
+    public static  FsmBuilderInitializer from(Supplier supplier) {
+        return new FsmBuilderInitializer<>(supplier);
     }
 
     /**
diff --git a/src/main/java/me/bvn13/fsm/FsmBuilderInitializer.java b/src/main/java/me/bvn13/fsm/FsmBuilderInitializer.java
new file mode 100644
index 0000000..d2f87cf
--- /dev/null
+++ b/src/main/java/me/bvn13/fsm/FsmBuilderInitializer.java
@@ -0,0 +1,17 @@
+package me.bvn13.fsm;
+
+import java.util.function.Supplier;
+
+public class FsmBuilderInitializer {
+
+    final Supplier supplier;
+
+    FsmBuilderInitializer(Supplier supplier) {
+        this.supplier = supplier;
+    }
+
+    public FsmBuilder withStates() {
+        return new FsmBuilder<>(supplier);
+    }
+
+}
diff --git a/src/test/java/me/bvn13/fsm/tests/FsmTest.java b/src/test/java/me/bvn13/fsm/tests/FsmTest.java
index 818ff16..d0dc9f4 100644
--- a/src/test/java/me/bvn13/fsm/tests/FsmTest.java
+++ b/src/test/java/me/bvn13/fsm/tests/FsmTest.java
@@ -1,11 +1,8 @@
 package me.bvn13.fsm.tests;
 
-import me.bvn13.fsm.ConditionBuilder;
 import me.bvn13.fsm.Fsm;
-import me.bvn13.fsm.FsmBuilder;
 import me.bvn13.fsm.SimpleFsm;
 import me.bvn13.fsm.State;
-import me.bvn13.fsm.StateBuilder;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -86,8 +83,9 @@ public class FsmTest {
 
         // @formatter:off
 
-        SimpleFsm simpleFsm = SimpleFsm
-                ., String>withStates(SimpleFsm::new)
+        SimpleFsm simpleFsm = Fsm
+                ., String>from(SimpleFsm::new)
+                .withStates()
                 .from("init")
                     .withBeforeHandler(fsm -> initBefore.set(true))
                     .withAfterHandler(fsm -> initAfter.set(true))