mirror of
https://github.com/CarmJos/EasyConfiguration.git
synced 2024-09-19 20:25:51 +00:00
测试抽象类继承获取
This commit is contained in:
parent
0bda97d82a
commit
0d10a06547
@ -2,6 +2,8 @@ package config;
|
||||
|
||||
import cc.carm.lib.configuration.EasyConfiguration;
|
||||
import cc.carm.lib.configuration.yaml.YamlConfigProvider;
|
||||
import config.model.AbstractModel;
|
||||
import config.model.SomeModel;
|
||||
import config.model.TestModel;
|
||||
import config.source.ComplexConfiguration;
|
||||
import config.source.DemoConfiguration;
|
||||
@ -11,6 +13,7 @@ import org.junit.Test;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
@ -21,6 +24,7 @@ public class ConfigTester {
|
||||
@Test
|
||||
public void onTest() {
|
||||
ConfigurationSerialization.registerClass(TestModel.class);
|
||||
ConfigurationSerialization.registerClass(SomeModel.class);
|
||||
|
||||
YamlConfigProvider provider = EasyConfiguration.from("target/config.yml", "config.yml");
|
||||
|
||||
@ -41,6 +45,16 @@ public class ConfigTester {
|
||||
provider.initialize(ImplConfiguration.class);
|
||||
System.out.println(ImplConfiguration.TEST.get());
|
||||
ImplConfiguration.TEST.set(TestModel.random());
|
||||
|
||||
AbstractModel model = provider.getConfiguration().getSerializable("ImplConfiguration.test", TestModel.class);
|
||||
|
||||
provider.getConfiguration().set("ImplConfiguration.some", new SomeModel("lover", 123));
|
||||
AbstractModel model2 = provider.getConfiguration().getSerializable("ImplConfiguration.some", SomeModel.class);
|
||||
|
||||
System.out.println("model1: " + Optional.ofNullable(model).map(AbstractModel::getName).orElse(null));
|
||||
System.out.println("model1: " + Optional.ofNullable(model2).map(AbstractModel::getName).orElse(null));
|
||||
|
||||
|
||||
System.out.println("----------------------------------------------------");
|
||||
}
|
||||
|
||||
|
16
impl/yaml/src/test/java/config/model/AbstractModel.java
Normal file
16
impl/yaml/src/test/java/config/model/AbstractModel.java
Normal file
@ -0,0 +1,16 @@
|
||||
package config.model;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public abstract class AbstractModel {
|
||||
|
||||
protected final @NotNull String name;
|
||||
|
||||
public AbstractModel(@NotNull String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public @NotNull String getName() {
|
||||
return name;
|
||||
}
|
||||
}
|
43
impl/yaml/src/test/java/config/model/SomeModel.java
Normal file
43
impl/yaml/src/test/java/config/model/SomeModel.java
Normal file
@ -0,0 +1,43 @@
|
||||
package config.model;
|
||||
|
||||
import org.bspfsystems.yamlconfiguration.serialization.ConfigurationSerializable;
|
||||
import org.bspfsystems.yamlconfiguration.serialization.SerializableAs;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@SerializableAs("SomeModel")
|
||||
public class SomeModel extends AbstractModel implements ConfigurationSerializable {
|
||||
|
||||
int num;
|
||||
|
||||
public SomeModel(@NotNull String name, int num) {
|
||||
super(name);
|
||||
this.num = num;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "SomeModel{" +
|
||||
"name='" + name + '\'' +
|
||||
", num=" + num +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Map<String, Object> serialize() {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("name", name);
|
||||
map.put("num", num);
|
||||
return map;
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
public static SomeModel deserialize(Map<String, ?> args) {
|
||||
return new SomeModel((String) args.get("name"), (int) args.get("num"));
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -11,28 +11,19 @@ import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
@SerializableAs("TestModel")
|
||||
public class TestModel implements ConfigurationSerializable {
|
||||
public class TestModel extends AbstractModel implements ConfigurationSerializable {
|
||||
|
||||
public String name;
|
||||
public UUID uuid;
|
||||
|
||||
public TestModel(String name, UUID uuid) {
|
||||
this.name = name;
|
||||
super(name);
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public void setUuid(UUID uuid) {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public UUID getUuid() {
|
||||
return uuid;
|
||||
}
|
||||
|
@ -11,4 +11,5 @@ public class ImplConfiguration extends ConfigurationRoot {
|
||||
|
||||
public static final ConfigValue<TestModel> TEST = ConfiguredSerializable.of(TestModel.class);
|
||||
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user