Compare commits

...

9 Commits
0.8.0 ... 0.8.2

8 changed files with 56 additions and 23 deletions

View File

@@ -1,5 +1,20 @@
# Changelog # Changelog
## 0.8.2
* `Versions`:
* `Klock`: `2.4.7` -> `2.4.8`
* `Serialization`: `1.3.0` -> `1.3.1`
* `FSM`:
* Now it is possible to pass any `CheckableHandlerHolder` in `FSMBuilder`
* Now `StatesMachine` works with `CheckableHandlerHolder` instead of `CustomizableHandlerHolder`
## 0.8.1
* `Versions`:
* `Exposed`: `0.36.1` -> `0.36.2`
* `Core KTX`: `1.6.0` -> `1.7.0`
## 0.8.0 ## 0.8.0
* `Versions`: * `Versions`:

View File

@@ -12,7 +12,7 @@ import kotlinx.coroutines.*
interface StatesMachine<T : State> : StatesHandler<T, T> { interface StatesMachine<T : State> : StatesHandler<T, T> {
suspend fun launchStateHandling( suspend fun launchStateHandling(
state: T, state: T,
handlers: List<CustomizableHandlerHolder<in T, T>> handlers: List<CheckableHandlerHolder<in T, T>>
): T? { ): T? {
return handlers.firstOrNull { it.checkHandleable(state) } ?.run { return handlers.firstOrNull { it.checkHandleable(state) } ?.run {
handleState(state) handleState(state)
@@ -35,7 +35,7 @@ interface StatesMachine<T : State> : StatesHandler<T, T> {
*/ */
operator fun <T: State> invoke( operator fun <T: State> invoke(
statesManager: StatesManager<T>, statesManager: StatesManager<T>,
handlers: List<CustomizableHandlerHolder<in T, T>> handlers: List<CheckableHandlerHolder<in T, T>>
) = DefaultStatesMachine(statesManager, handlers) ) = DefaultStatesMachine(statesManager, handlers)
} }
} }
@@ -46,7 +46,7 @@ interface StatesMachine<T : State> : StatesHandler<T, T> {
*/ */
class DefaultStatesMachine <T: State>( class DefaultStatesMachine <T: State>(
private val statesManager: StatesManager<T>, private val statesManager: StatesManager<T>,
private val handlers: List<CustomizableHandlerHolder<in T, T>> private val handlers: List<CheckableHandlerHolder<in T, T>>
) : StatesMachine<T> { ) : StatesMachine<T> {
/** /**
* Will call [launchStateHandling] for state handling * Will call [launchStateHandling] for state handling

View File

@@ -9,14 +9,18 @@ class FSMBuilder<T : State>(
var statesManager: StatesManager<T> = DefaultStatesManager(InMemoryDefaultStatesManagerRepo()), var statesManager: StatesManager<T> = DefaultStatesManager(InMemoryDefaultStatesManagerRepo()),
var defaultStateHandler: StatesHandler<T, T>? = StatesHandler { null } var defaultStateHandler: StatesHandler<T, T>? = StatesHandler { null }
) { ) {
private var states = mutableListOf<CustomizableHandlerHolder<T, T>>() private var states = mutableListOf<CheckableHandlerHolder<T, T>>()
fun add(handler: CheckableHandlerHolder<T, T>) {
states.add(handler)
}
fun <I : T> add(kClass: KClass<I>, handler: StatesHandler<I, T>) { fun <I : T> add(kClass: KClass<I>, handler: StatesHandler<I, T>) {
states.add(CheckableHandlerHolder(kClass, false, handler)) add(CheckableHandlerHolder(kClass, false, handler))
} }
fun <I : T> add(filter: suspend (state: State) -> Boolean, handler: StatesHandler<I, T>) { fun <I : T> add(filter: suspend (state: State) -> Boolean, handler: StatesHandler<I, T>) {
states.add(handler.holder(filter)) add(handler.holder(filter))
} }
fun <I : T> addStrict(kClass: KClass<I>, handler: StatesHandler<I, T>) { fun <I : T> addStrict(kClass: KClass<I>, handler: StatesHandler<I, T>) {

View File

@@ -9,12 +9,12 @@ org.gradle.jvmargs=-Xmx2g
kotlin_version=1.5.31 kotlin_version=1.5.31
kotlin_coroutines_version=1.5.2 kotlin_coroutines_version=1.5.2
kotlin_serialisation_core_version=1.3.0 kotlin_serialisation_core_version=1.3.1
kotlin_exposed_version=0.36.1 kotlin_exposed_version=0.36.2
ktor_version=1.6.5 ktor_version=1.6.5
klockVersion=2.4.7 klockVersion=2.4.8
github_release_plugin_version=2.2.12 github_release_plugin_version=2.2.12
@@ -22,7 +22,7 @@ uuidVersion=0.3.1
# ANDROID # ANDROID
core_ktx_version=1.6.0 core_ktx_version=1.7.0
androidx_recycler_version=1.2.1 androidx_recycler_version=1.2.1
appcompat_version=1.3.1 appcompat_version=1.3.1
@@ -45,5 +45,5 @@ dokka_version=1.5.31
# Project data # Project data
group=dev.inmo group=dev.inmo
version=0.8.0 version=0.8.2
android_code_version=80 android_code_version=82

View File

@@ -24,3 +24,8 @@ dependencies {
} }
mainClassName="MainKt" mainClassName="MainKt"
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

View File

@@ -26,7 +26,6 @@ kotlin {
apply from: "$defaultAndroidSettingsPresetPath" apply from: "$defaultAndroidSettingsPresetPath"
java { java {
toolchain { sourceCompatibility = JavaVersion.VERSION_1_8
languageVersion = JavaLanguageVersion.of(8) targetCompatibility = JavaVersion.VERSION_1_8
}
} }

View File

@@ -4,7 +4,13 @@ project.group = "$group"
apply from: "$publishGradlePath" apply from: "$publishGradlePath"
kotlin { kotlin {
jvm() jvm {
compilations.main {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
sourceSets { sourceSets {
commonMain { commonMain {
@@ -28,7 +34,6 @@ kotlin {
} }
java { java {
toolchain { sourceCompatibility = JavaVersion.VERSION_1_8
languageVersion = JavaLanguageVersion.of(8) targetCompatibility = JavaVersion.VERSION_1_8
}
} }

View File

@@ -4,7 +4,13 @@ project.group = "$group"
apply from: "$publishGradlePath" apply from: "$publishGradlePath"
kotlin { kotlin {
jvm() jvm {
compilations.main {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
js (IR) { js (IR) {
browser() browser()
nodejs() nodejs()
@@ -50,7 +56,6 @@ kotlin {
apply from: "$defaultAndroidSettingsPresetPath" apply from: "$defaultAndroidSettingsPresetPath"
java { java {
toolchain { sourceCompatibility = JavaVersion.VERSION_1_8
languageVersion = JavaLanguageVersion.of(8) targetCompatibility = JavaVersion.VERSION_1_8
}
} }