From 9b348acaa94afbaf548dac8fba76985fcd5617ef Mon Sep 17 00:00:00 2001 From: Roman Gräf Date: Fri, 17 Jul 2020 21:31:27 +0200 Subject: version bump and point list. --- src/main/kotlin/com/romangraef/jrconfig/Config.kt | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/main/kotlin/com') diff --git a/src/main/kotlin/com/romangraef/jrconfig/Config.kt b/src/main/kotlin/com/romangraef/jrconfig/Config.kt index 1a1108b..d49bf1f 100644 --- a/src/main/kotlin/com/romangraef/jrconfig/Config.kt +++ b/src/main/kotlin/com/romangraef/jrconfig/Config.kt @@ -6,6 +6,7 @@ typealias ConfigVariableProvider = (ConfigSaveLoadProvider, String) -> Config object Config { private var configProvider = mutableListOf() + private val _usedPoints = mutableListOf() private val map: MutableMap, ConfigVariableProvider<*>> = mutableMapOf() private val proxyProvider: ConfigSaveLoadProvider = object : ConfigSaveLoadProvider { @@ -27,16 +28,23 @@ object Config { map[String::class.java] = ::StringVariable } + /** + * A list of all registered points. This list is not necessarily complete. + */ + val usedPoints + get() = _usedPoints.toList() @Suppress("UNCHECKED_CAST") @JvmStatic fun get(clazz: Class, point: String): ConfigVariable { + _usedPoints.add(point) return (map[clazz] as? ConfigVariableProvider)?.invoke(proxyProvider, point) ?: throw ConfigMissingProviderException(clazz) } @JvmStatic fun > getEnum(enumClass: Class, point: String): ConfigVariable { + _usedPoints.add(point) return EnumVariable(enumClass, proxyProvider, point) } -- cgit