1
mirror of https://github.com/CarmJos/EasyConfiguration.git synced 2026-06-05 02:58:20 +08:00

feat(yaml): Finished YAML Provider

This commit is contained in:
2025-02-13 06:48:58 +08:00
parent 5b95824bb0
commit 47e2a4854c
27 changed files with 357 additions and 426 deletions
-57
View File
@@ -1,57 +0,0 @@
import cc.carm.lib.configuration.adapter.ValueAdapterRegistry;
import cc.carm.lib.configuration.adapter.ValueType;
import cc.carm.lib.configuration.adapter.strandard.PrimitiveAdapter;
import cc.carm.lib.configuration.source.ConfigurationHolder;
import cc.carm.lib.configuration.source.loader.ConfigurationInitializer;
import cc.carm.lib.configuration.source.option.ConfigurationOptionHolder;
import cc.carm.test.config.TestSource;
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import java.time.Duration;
import java.time.LocalTime;
import java.util.concurrent.ConcurrentHashMap;
public class AdaptTest {
@Test
public void test() throws Exception {
ValueAdapterRegistry registry = new ValueAdapterRegistry();
registry.register(PrimitiveAdapter.ADAPTERS);
registry.register(PrimitiveAdapter.ofEnum());
registry.register(ValueType.of(Long.class), ValueType.of(Duration.class), Duration::ofMillis, Duration::toMillis);
registry.register(
ValueType.of(Duration.class), ValueType.of(LocalTime.class),
duration -> LocalTime.now().plus(duration),
data -> Duration.between(LocalTime.now(), data)
);
ConfigurationHolder<TestSource> provider = new ConfigurationHolder<TestSource>(
registry, new ConfigurationOptionHolder(),
new ConcurrentHashMap<>(), new ConfigurationInitializer()
) {
final TestSource source = new TestSource(this, System.currentTimeMillis());
@Override
public @NotNull TestSource config() {
return source;
}
};
LocalTime v = registry.deserialize(provider, LocalTime.class, 600000L);
Object d = registry.serialize(provider, v);
System.out.println(v);
System.out.println(d);
System.out.println(registry.deserialize(provider, TestEnum.class, "C"));
System.out.println(registry.serialize(provider, TestEnum.C).getClass());
}
enum TestEnum {
A, b, C
}
}
@@ -1,55 +0,0 @@
package cc.carm.test.config;
import cc.carm.lib.configuration.adapter.ValueAdapterRegistry;
import cc.carm.lib.configuration.annotation.ConfigPath;
import cc.carm.lib.configuration.Configuration;
import cc.carm.lib.configuration.source.ConfigurationHolder;
import cc.carm.lib.configuration.source.loader.ConfigurationInitializer;
import cc.carm.lib.configuration.source.option.ConfigurationOptionHolder;
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import java.util.concurrent.ConcurrentHashMap;
public class LoaderTest {
@Test
public void test() throws Exception {
ConfigurationHolder<TestSource> provider = new ConfigurationHolder<TestSource>(
new ValueAdapterRegistry(), new ConfigurationOptionHolder(),
new ConcurrentHashMap<>(), new ConfigurationInitializer()
) {
final TestSource source = new TestSource(this, System.currentTimeMillis());
@Override
public @NotNull TestSource config() {
return source;
}
};
ConfigurationInitializer loader = new ConfigurationInitializer();
loader.initialize(provider, ROOT.class);
}
interface ROOT extends Configuration {
interface SUB extends Configuration {
}
@ConfigPath(root = true)
interface EXTERNAL extends Configuration {
}
@ConfigPath("NO")
interface YES extends Configuration {
}
}
}
@@ -1,57 +0,0 @@
package cc.carm.test.config;
import cc.carm.lib.configuration.source.section.ConfigureSection;
import cc.carm.lib.configuration.source.section.ConfigureSource;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Collections;
import java.util.List;
import java.util.Map;
public class TestSection implements ConfigureSection {
@Override
public @NotNull ConfigureSource<?, ?, ?> source() {
return null;
}
@Override
public @NotNull Map<String, Object> getValues(boolean deep) {
return Collections.emptyMap();
}
@Override
public void set(@NotNull String path, @Nullable Object value) {
}
@Override
public boolean contains(@NotNull String path) {
return false;
}
@Override
public boolean isList(@NotNull String path) {
return false;
}
@Override
public @Nullable List<?> getList(@NotNull String path) {
return Collections.emptyList();
}
@Override
public boolean isSection(@NotNull String path) {
return false;
}
@Override
public @Nullable ConfigureSection getSection(@NotNull String path) {
return null;
}
@Override
public @Nullable Object get(@NotNull String path) {
return null;
}
}
@@ -1,45 +0,0 @@
package cc.carm.test.config;
import cc.carm.lib.configuration.source.ConfigurationHolder;
import cc.carm.lib.configuration.source.section.ConfigureSource;
import org.jetbrains.annotations.NotNull;
import java.util.Map;
public class TestSource extends ConfigureSource<TestSection, Map<String, String>, TestSource> {
public TestSource(@NotNull ConfigurationHolder<? extends TestSource> holder, long lastUpdateMillis) {
super(holder, lastUpdateMillis);
}
@Override
protected TestSource self() {
return this;
}
@Override
public void save() throws Exception {
}
@Override
protected void onReload() throws Exception {
}
@Override
public @NotNull Map<String, String> original() {
return null;
}
@Override
public @NotNull TestSection section() {
return null;
}
@Override
public @NotNull ConfigureSource<?, ?, ?> source() {
return null;
}
}