aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt')
-rw-r--r--src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt b/src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt
index ae38409..e1034c2 100644
--- a/src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt
+++ b/src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt
@@ -2,7 +2,7 @@ package com.romangraef.jrconfig
import java.util.function.Function
-abstract class TransformerConfigVariable<T>(private val provider: ConfigProvider, private val point: String) :
+abstract class TransformerConfigVariable<T>(private val provider: ConfigSaveLoadProvider, private val point: String) :
ConfigVariable<T> {
protected abstract fun transform(value: String): T
protected abstract fun serialize(data: T): String
@@ -12,16 +12,22 @@ abstract class TransformerConfigVariable<T>(private val provider: ConfigProvider
}
- override fun set(value: T) =
+ override fun set(value: T) {
provider.setData(point, serialize(value))
+ }
+ override fun defaultValue(t: T?): ConfigVariable<T> = if (t == null) {
+ this
+ } else {
+ DefaultConfigVariable(this, t)
+ }
companion object {
/**
* Quick and dirty. Please consider using a subclass.
*/
fun <T> getVariable(
- provider: ConfigProvider,
+ provider: ConfigSaveLoadProvider,
point: String,
transform: Function<String, T>,
serialize: Function<T, String>