mirror of
https://github.com/CarmJos/EasyConfiguration.git
synced 2026-06-05 02:58:20 +08:00
feat: Support kotlin dsl
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
package cc.carm.lib.configuration.demo.tests;
|
||||
|
||||
import cc.carm.lib.configuration.demo.tests.conf.DemoConfiguration;
|
||||
import cc.carm.lib.configuration.demo.tests.conf.KotlinConfiguration;
|
||||
import cc.carm.lib.configuration.demo.tests.conf.RegistryConfig;
|
||||
import cc.carm.lib.configuration.demo.tests.model.UserRecord;
|
||||
import cc.carm.lib.configuration.source.ConfigurationHolder;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -80,6 +82,22 @@ public class ConfigurationTest {
|
||||
|
||||
}
|
||||
|
||||
public static void testKotlin(ConfigurationHolder<?> provider) {
|
||||
provider.initialize(KotlinConfiguration.class);
|
||||
|
||||
System.out.println("> Test Kotlin value before:");
|
||||
System.out.println(KotlinConfiguration.INSTANCE.getLINKED_MAP().get());
|
||||
|
||||
LinkedHashMap<String, String> map = new LinkedHashMap<>();
|
||||
map.put("Language", "Kotlin");
|
||||
System.out.println("> Test Kotlin value -> " + map);
|
||||
KotlinConfiguration.INSTANCE.getLINKED_MAP().set(map);
|
||||
|
||||
System.out.println("> Test Kotlin value after:");
|
||||
System.out.println(KotlinConfiguration.INSTANCE.getLINKED_MAP().get());
|
||||
|
||||
}
|
||||
|
||||
public static void save(ConfigurationHolder<?> provider) {
|
||||
try {
|
||||
provider.save();
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package cc.carm.lib.configuration.demo.tests.conf
|
||||
|
||||
import cc.carm.lib.configuration.Configuration
|
||||
import cc.carm.lib.configuration.annotation.ConfigPath
|
||||
import cc.carm.lib.configuration.annotation.ConfigVersion
|
||||
import cc.carm.lib.configuration.kotlin.value.*
|
||||
import java.util.*
|
||||
|
||||
@ConfigPath(root = true)
|
||||
object KotlinConfiguration : Configuration {
|
||||
@ConfigVersion(1)
|
||||
val VERSION = valueFrom(Double::class) {
|
||||
defaults(1.0)
|
||||
}
|
||||
|
||||
val USER_LIST = listFrom(String::class) {
|
||||
defaults("Carm Jos")
|
||||
}
|
||||
|
||||
val NICKNAME = mapFrom(String::class, ::mutableMapOf) {
|
||||
defaultMap(mapOf("Carm Jos" to "Carm"))
|
||||
parse { v -> v }
|
||||
serialize { v -> v }
|
||||
}
|
||||
|
||||
val LINKED_MAP = linkedMapFrom(String::class) {
|
||||
parse { value ->
|
||||
value
|
||||
}
|
||||
serialize { v -> v }
|
||||
defaults("key", "value")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user