aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt
diff options
context:
space:
mode:
authorRoman Gräf <romangraef@loves.dicksinhisan.us>2020-07-13 01:57:33 +0200
committerRoman Gräf <romangraef@loves.dicksinhisan.us>2020-07-13 01:57:33 +0200
commit11b49d815b69a8ff45643d357d67cbdab11caf4e (patch)
treee97e87737426020d4e79dd5ea69958ea62708680 /src/main/kotlin/com/romangraef/jrconfig/TransformerConfigVariable.kt
parent92358494319c66a5ded4ee13a173846cd15f284e (diff)
downloadjrconfig-1.0.tar.gz
jrconfig-1.0.tar.bz2
jrconfig-1.0.zip
default valuesv1.0
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>