aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Gräf <romangraef@loves.dicksinhisan.us>2020-07-17 21:31:27 +0200
committerRoman Gräf <romangraef@loves.dicksinhisan.us>2020-07-17 21:31:27 +0200
commit9b348acaa94afbaf548dac8fba76985fcd5617ef (patch)
tree9b9932bb3702b18bb6038d314a670d6d81d62925
parentc16f62ba02e20752c0ace828598768ed81942205 (diff)
downloadjrconfig-9b348acaa94afbaf548dac8fba76985fcd5617ef.tar.gz
jrconfig-9b348acaa94afbaf548dac8fba76985fcd5617ef.tar.bz2
jrconfig-9b348acaa94afbaf548dac8fba76985fcd5617ef.zip
version bump and point list.HEADv1.2master
-rw-r--r--README.md2
-rw-r--r--src/main/kotlin/com/romangraef/jrconfig/Config.kt8
2 files changed, 9 insertions, 1 deletions
diff --git a/README.md b/README.md
index 6268f5f..ab76f8c 100644
--- a/README.md
+++ b/README.md
@@ -63,7 +63,7 @@ repositories {
}
dependencies {
- implementation("com.github.romangraef", "jrconfig", "v1.1")
+ implementation("com.github.romangraef", "jrconfig", "v1.2")
}
```
The version can be either a git shortref, or a [tag](https://github.com/romangraef/jrconfig/tags).
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<T> = (ConfigSaveLoadProvider, String) -> Config
object Config {
private var configProvider = mutableListOf<ConfigProvider>()
+ private val _usedPoints = mutableListOf<String>()
private val map: MutableMap<Class<*>, 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 <T> get(clazz: Class<out T>, point: String): ConfigVariable<T> {
+ _usedPoints.add(point)
return (map[clazz] as? ConfigVariableProvider<T>)?.invoke(proxyProvider, point)
?: throw ConfigMissingProviderException(clazz)
}
@JvmStatic
fun <T : Enum<T>> getEnum(enumClass: Class<T>, point: String): ConfigVariable<T> {
+ _usedPoints.add(point)
return EnumVariable(enumClass, proxyProvider, point)
}