Skip to content

Commit 96aa18f

Browse files
committed
draft
1 parent 6732284 commit 96aa18f

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

src/main/kotlin/dsl/Fsm.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ class Fsm(
77
) {
88

99
companion object {
10-
@JvmStatic
11-
fun create(initialState: String, xxx: FsmSpec.() -> FsmSpec): Fsm {
10+
fun create(initialState: String, fsmRecipe: FsmSpec.() -> FsmSpec): Fsm {
1211
return FsmSpec(initialState = initialState)
13-
.xxx()
12+
.fsmRecipe()
1413
.build()
1514
}
1615
}

src/main/kotlin/dsl/FsmSpec.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
package dsl
22

33
class FsmSpec(
4-
private val transitions: MutableList<TransitionSpec.() -> TransitionSpec> = mutableListOf(),
4+
private val transitions: MutableList<Transition> = mutableListOf(),
55
val initialState: String
66
) {
77

88
fun add(transitionRecipe: TransitionSpec.() -> TransitionSpec): FsmSpec {
9-
transitions.add(transitionRecipe)
9+
transitions.add(Transition.create(transitionRecipe))
1010
return this
1111
}
1212

1313
fun build(): Fsm {
14-
val map = transitions.map { func -> TransitionSpec().func().build() }
15-
.associateBy({ it.event }, { it.stateFlow })
14+
val map = transitions.associateBy({ it.event }, { it.stateFlow })
1615
return Fsm(
1716
transitions = map,
1817
initial = State(initialState),

src/main/kotlin/dsl/StateFlow.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package dsl
33
data class StateFlow(val from: State, val into: State) {
44

55
companion object {
6-
@JvmStatic
76
fun of(from: String, into: String): StateFlow {
87
return StateFlow(State(from), State(into))
98
}

src/main/kotlin/dsl/Transition.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@ package dsl
22

33
data class Transition(val event: Event, val stateFlow: StateFlow) {
44

5+
companion object {
6+
fun create(transitionSpec: TransitionSpec.() -> TransitionSpec): Transition {
7+
return TransitionSpec()
8+
.transitionSpec()
9+
.build()
10+
}
11+
}
12+
513
override fun toString(): String {
614
return "$event: $stateFlow"
715
}

0 commit comments

Comments
 (0)