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:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user