1
mirror of https://github.com/CarmJos/EasyConfiguration.git synced 2026-06-04 18:48:20 +08:00

feat(interface): Support interface root configurations.

This commit is contained in:
2023-12-23 22:24:34 +08:00
parent 60eed8a14d
commit db8b227317
10 changed files with 116 additions and 59 deletions
@@ -1,10 +1,8 @@
package online.flowerinsnow.test.easyconfiguration;
import cc.carm.lib.configuration.EasyConfiguration;
//import cc.carm.lib.configuration.demo.DatabaseConfiguration;
//import cc.carm.lib.configuration.demo.tests.conf.DemoConfiguration;
import cc.carm.lib.configuration.hocon.HOCONFileConfigProvider;
import online.flowerinsnow.test.easyconfiguration.config.Config;
import online.flowerinsnow.test.easyconfiguration.config.SimpleConfig;
import org.junit.Test;
import java.io.File;
@@ -13,9 +11,15 @@ public class HOCONTest {
@Test
public void onTest() {
HOCONFileConfigProvider provider = EasyConfiguration.from(new File("target/hocon.conf"));
provider.initialize(Config.class);
provider.initialize(SimpleConfig.class);
// provider.initialize(DatabaseConfiguration.class);
System.out.println(SimpleConfig.TEST_INT.getNotNull());
SimpleConfig.TEST_INT.set((int) (Math.random() * 100 * 5));
System.out.println(SimpleConfig.TEST_INT.getNotNull());
try {
provider.save();
provider.reload();
} catch (Exception e) {
e.printStackTrace();
@@ -1,25 +1,28 @@
package online.flowerinsnow.test.easyconfiguration.config;
import cc.carm.lib.configuration.core.ConfigurationRoot;
import cc.carm.lib.configuration.core.Configuration;
import cc.carm.lib.configuration.core.annotation.HeaderComment;
import cc.carm.lib.configuration.core.value.type.ConfiguredList;
import cc.carm.lib.configuration.core.value.type.ConfiguredValue;
public class Config extends ConfigurationRoot {
public interface SimpleConfig extends Configuration {
@HeaderComment("测试字段 int")
public static final ConfiguredValue<Integer> TEST_INT = ConfiguredValue.of(Integer.class, 15);
ConfiguredValue<Integer> TEST_INT = ConfiguredValue.of(Integer.class, 15);
@HeaderComment("测试字段 List<String>")
public static final ConfiguredList<String> TEST_LIST_STRING = ConfiguredList.of(String.class, "li", "li", "li1");
ConfiguredList<String> TEST_LIST_STRING = ConfiguredList.of(String.class, "li", "li", "li1");
@HeaderComment("测试对象")
public static class TestObject extends ConfigurationRoot {
interface TestObject extends Configuration {
@HeaderComment("测试字段 Boolean")
public static final ConfiguredValue<Boolean> TEST_BOOLEAN = ConfiguredValue.of(Boolean.class, true);
ConfiguredValue<Boolean> TEST_BOOLEAN = ConfiguredValue.of(Boolean.class, true);
@HeaderComment("inner")
public static class InnerObject extends ConfigurationRoot {
interface InnerObject extends Configuration {
@HeaderComment("测试字段")
public static final ConfiguredValue<Boolean> TEST_BOOLEAN_1 = ConfiguredValue.of(Boolean.class, true);
}
}
}