mirror of
https://github.com/CarmJos/EasyConfiguration.git
synced 2026-06-04 18:48:20 +08:00
feat!(value): Redesigned the Configuration api
This commit is contained in:
@@ -1,14 +1,18 @@
|
||||
import cc.carm.lib.configuration.adapter.ValueAdapterRegistry;
|
||||
import cc.carm.lib.configuration.adapter.strandard.EnumAdapter;
|
||||
import cc.carm.lib.configuration.adapter.ValueType;
|
||||
import cc.carm.lib.configuration.adapter.strandard.PrimitiveAdapters;
|
||||
import cc.carm.lib.configuration.source.ConfigurationProvider;
|
||||
import cc.carm.lib.configuration.loader.ConfigurationLoader;
|
||||
import cc.carm.lib.easyoptions.OptionHolder;
|
||||
import cc.carm.lib.configuration.source.loader.ConfigurationLoader;
|
||||
import cc.carm.lib.configuration.source.option.ConfigurationOptionHolder;
|
||||
import cc.carm.lib.configuration.value.standard.ConfiguredValue;
|
||||
import cc.carm.test.config.TestSource;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class AdaptTest {
|
||||
|
||||
@@ -16,42 +20,29 @@ public class AdaptTest {
|
||||
public void test() throws Exception {
|
||||
|
||||
ValueAdapterRegistry registry = new ValueAdapterRegistry();
|
||||
registry.register(Long.class, PrimitiveAdapters.ofLong());
|
||||
registry.register(long.class, PrimitiveAdapters.ofLong());
|
||||
registry.register(Integer.class, PrimitiveAdapters.ofInteger());
|
||||
registry.register(int.class, PrimitiveAdapters.ofInteger());
|
||||
registry.register(Double.class, PrimitiveAdapters.ofDouble());
|
||||
registry.register(double.class, PrimitiveAdapters.ofDouble());
|
||||
registry.register(Float.class, PrimitiveAdapters.ofFloat());
|
||||
registry.register(float.class, PrimitiveAdapters.ofFloat());
|
||||
registry.register(Short.class, PrimitiveAdapters.ofShort());
|
||||
registry.register(short.class, PrimitiveAdapters.ofShort());
|
||||
registry.register(Byte.class, PrimitiveAdapters.ofByte());
|
||||
registry.register(byte.class, PrimitiveAdapters.ofByte());
|
||||
registry.register(Character.class, PrimitiveAdapters.ofCharacter());
|
||||
registry.register(char.class, PrimitiveAdapters.ofCharacter());
|
||||
registry.register(Boolean.class, PrimitiveAdapters.ofBoolean());
|
||||
registry.register(boolean.class, PrimitiveAdapters.ofBoolean());
|
||||
registry.register(String.class, PrimitiveAdapters.ofString());
|
||||
registry.register(new EnumAdapter());
|
||||
registry.register(PrimitiveAdapters.ADAPTERS);
|
||||
registry.register(PrimitiveAdapters.ofEnum());
|
||||
|
||||
registry.register(Long.class, Duration.class, Duration::ofSeconds, Duration::getSeconds);
|
||||
|
||||
registry.register(ValueType.of(Long.class), ValueType.of(Duration.class), Duration::ofMillis, Duration::toMillis);
|
||||
registry.register(
|
||||
Duration.class, LocalTime.class,
|
||||
ValueType.of(Duration.class), ValueType.of(LocalTime.class),
|
||||
duration -> LocalTime.now().plus(duration),
|
||||
data -> Duration.between(LocalTime.now(), data)
|
||||
);
|
||||
|
||||
ConfigurationProvider<TestSource> provider = new ConfigurationProvider<>(new TestSource(), new ConfigurationLoader(), registry, new OptionHolder());
|
||||
ConfigurationProvider<TestSource> provider = new ConfigurationProvider<>(
|
||||
new TestSource(), new ConfigurationLoader(),
|
||||
registry, new ConfigurationOptionHolder(), new ConcurrentHashMap<>()
|
||||
);
|
||||
|
||||
LocalTime v = registry.deserialize(provider, LocalTime.class, "600");
|
||||
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, "b"));
|
||||
System.out.println(registry.deserialize(provider, TestEnum.class, "C"));
|
||||
System.out.println(registry.serialize(provider, TestEnum.C).getClass());
|
||||
|
||||
}
|
||||
|
||||
enum TestEnum {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import cc.carm.lib.configuration.loader.PathGenerator;
|
||||
import cc.carm.lib.configuration.source.loader.PathGenerator;
|
||||
import org.junit.Test;
|
||||
|
||||
public class NameTest {
|
||||
|
||||
@@ -4,15 +4,17 @@ 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.ConfigurationProvider;
|
||||
import cc.carm.lib.configuration.loader.ConfigurationLoader;
|
||||
import cc.carm.lib.easyoptions.OptionHolder;
|
||||
import cc.carm.lib.configuration.source.loader.ConfigurationLoader;
|
||||
import cc.carm.lib.configuration.source.option.ConfigurationOptionHolder;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class LoaderTest {
|
||||
|
||||
@Test
|
||||
public void test() throws Exception {
|
||||
ConfigurationProvider<TestSource> provider = new ConfigurationProvider<>(new TestSource(), new ConfigurationLoader(), new ValueAdapterRegistry(), new OptionHolder());
|
||||
ConfigurationProvider<TestSource> provider = new ConfigurationProvider<>(new TestSource(), new ConfigurationLoader(), new ValueAdapterRegistry(), new ConfigurationOptionHolder(), new ConcurrentHashMap<>());
|
||||
|
||||
ConfigurationLoader loader = new ConfigurationLoader();
|
||||
loader.load(provider, ROOT.class);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package cc.carm.test.config;
|
||||
|
||||
import cc.carm.lib.configuration.source.ConfigurationSection;
|
||||
import cc.carm.lib.configuration.source.ConfigurationSource;
|
||||
import cc.carm.lib.configuration.source.section.ConfigurationSection;
|
||||
import cc.carm.lib.configuration.source.section.ConfigurationSource;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -16,7 +16,7 @@ public class TestSource extends ConfigurationSource<TestSource, Map<String, Stri
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TestSource getThis() {
|
||||
protected TestSource self() {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user