1
mirror of https://github.com/CarmJos/EasyConfiguration.git synced 2026-06-04 10:38:19 +08:00

feat(json): Finished json version's provider

This commit is contained in:
2025-02-13 01:30:10 +08:00
parent 05ff61a9d9
commit 79f59bafe6
20 changed files with 125 additions and 95 deletions
@@ -22,6 +22,16 @@ public class JSONSection implements ConfigureSection {
if (entry.getValue() instanceof Map) {
this.data.put(key, new JSONSection(source, (Map<?, ?>) entry.getValue()));
} else if (entry.getValue() instanceof List) {
List<Object> list = new ArrayList<>();
for (Object obj : (List<?>) entry.getValue()) {
if (obj instanceof Map) {
list.add(new JSONSection(source, (Map<?, ?>) obj));
} else {
list.add(obj);
}
}
this.data.put(key, list);
} else {
this.data.put(key, entry.getValue());
}
@@ -3,7 +3,10 @@ package config;
import cc.carm.lib.configuration.demo.tests.ConfigurationTest;
import cc.carm.lib.configuration.json.JSONConfigFactory;
import cc.carm.lib.configuration.source.ConfigurationHolder;
import cc.carm.lib.configuration.source.loader.PathGenerator;
import cc.carm.lib.configuration.source.option.StandardOptions;
import cc.carm.lib.configuration.value.ConfigValue;
import cc.carm.lib.configuration.value.standard.ConfiguredValue;
import org.junit.Test;
import java.io.File;
@@ -12,11 +15,17 @@ public class JSONConfigTest {
protected final ConfigurationHolder<?> holder = JSONConfigFactory
.from(new File("target"), "config.json")
.option(StandardOptions.PATH_SEPARATOR, '-')
.resourcePath("example.json")
.build();
@Test
public void onTest() {
ConfigValue<Boolean> EXAMPLE = ConfiguredValue.of(false);
EXAMPLE.initialize(this.holder, "example");
System.out.println("Example: " + EXAMPLE.get());
ConfigurationTest.testDemo(this.holder);
ConfigurationTest.testInner(this.holder);
@@ -0,0 +1,3 @@
{
"example": "true"
}
@@ -2,7 +2,7 @@ package config;
import cc.carm.lib.configuration.EasyConfiguration;
import cc.carm.lib.configuration.demo.tests.ConfigurationTest;
import cc.carm.lib.configuration.demo.tests.model.AbstractModel;
import cc.carm.lib.configuration.demo.tests.model.AbstractRecord;
import cc.carm.lib.configuration.yaml.YAMLConfigProvider;
import config.model.AnyModel;
import config.model.SomeModel;
@@ -10,8 +10,6 @@ import config.source.ModelConfiguration;
import org.bspfsystems.yamlconfiguration.serialization.ConfigurationSerialization;
import org.junit.Test;
import java.io.IOException;
public class DemoConfigTest {
static {
@@ -37,10 +35,10 @@ public class DemoConfigTest {
provider.initialize(ModelConfiguration.class);
System.out.println("----------------------------------------------------");
AbstractModel someModel = ModelConfiguration.SOME_MODEL.get();
AbstractRecord someModel = ModelConfiguration.SOME_MODEL.get();
if (someModel != null) System.out.println(someModel.getName());
AbstractModel anyModel = ModelConfiguration.ANY_MODEL.get();
AbstractRecord anyModel = ModelConfiguration.ANY_MODEL.get();
if (anyModel != null) System.out.println(anyModel.getName());
ModelConfiguration.MODELS.forEach(System.out::println);
@@ -1,6 +1,6 @@
package config.model;
import cc.carm.lib.configuration.demo.tests.model.AbstractModel;
import cc.carm.lib.configuration.demo.tests.model.AbstractRecord;
import org.bspfsystems.yamlconfiguration.serialization.ConfigurationSerializable;
import org.bspfsystems.yamlconfiguration.serialization.SerializableAs;
import org.jetbrains.annotations.NotNull;
@@ -11,7 +11,7 @@ import java.util.Map;
import java.util.UUID;
@SerializableAs("AnyModel")
public class AnyModel extends AbstractModel implements ConfigurationSerializable {
public class AnyModel extends AbstractRecord implements ConfigurationSerializable {
public final boolean bool;
@@ -1,6 +1,6 @@
package config.model;
import cc.carm.lib.configuration.demo.tests.model.AbstractModel;
import cc.carm.lib.configuration.demo.tests.model.AbstractRecord;
import org.bspfsystems.yamlconfiguration.serialization.ConfigurationSerializable;
import org.bspfsystems.yamlconfiguration.serialization.SerializableAs;
import org.jetbrains.annotations.NotNull;
@@ -11,7 +11,7 @@ import java.util.Map;
import java.util.UUID;
@SerializableAs("SomeModel")
public class SomeModel extends AbstractModel implements ConfigurationSerializable {
public class SomeModel extends AbstractRecord implements ConfigurationSerializable {
public final int num;
@@ -7,7 +7,7 @@ import cc.carm.lib.configuration.value.ConfigValue;
import cc.carm.lib.configuration.value.standard.ConfiguredList;
import cc.carm.lib.configuration.value.standard.ConfiguredMap;
import cc.carm.lib.configuration.value.standard.ConfiguredSectionMap;
import cc.carm.lib.configuration.demo.tests.model.AbstractModel;
import cc.carm.lib.configuration.demo.tests.model.AbstractRecord;
import cc.carm.lib.configuration.yaml.value.ConfiguredSerializable;
import config.model.AnyModel;
import config.model.SomeModel;
@@ -16,11 +16,11 @@ import config.model.SomeModel;
@ConfigPath("model-test")
public class ModelConfiguration implements Configuration {
public static final ConfigValue<? extends AbstractModel> SOME_MODEL = ConfiguredSerializable.of(
public static final ConfigValue<? extends AbstractRecord> SOME_MODEL = ConfiguredSerializable.of(
SomeModel.class, SomeModel.random()
);
public static final ConfigValue<? extends AbstractModel> ANY_MODEL = ConfiguredSerializable.of(
public static final ConfigValue<? extends AbstractRecord> ANY_MODEL = ConfiguredSerializable.of(
AnyModel.class, AnyModel.random()
);