mirror of
https://github.com/CarmJos/EasyConfiguration.git
synced 2026-06-04 10:38:19 +08:00
feat(adapter): Support complex ParameterizedType's serialize & deserialize.
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>configured-parent</artifactId>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<version>4.1.6</version>
|
||||
<version>4.1.7-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<artifactId>configured-parent</artifactId>
|
||||
<version>4.1.6</version>
|
||||
<version>4.1.7-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<properties>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<parent>
|
||||
<artifactId>configured-parent</artifactId>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<version>4.1.6</version>
|
||||
<version>4.1.7-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<artifactId>configured-parent</artifactId>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<version>4.1.6</version>
|
||||
<version>4.1.7-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<properties>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<artifactId>configured-parent</artifactId>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<version>4.1.6</version>
|
||||
<version>4.1.7-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<properties>
|
||||
|
||||
+26
-2
@@ -4,13 +4,37 @@ import cc.carm.lib.configuration.source.ConfigurationFactory;
|
||||
import cc.carm.lib.configuration.source.ConfigurationHolder;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class TempConfigFactory
|
||||
extends ConfigurationFactory<TempSource, ConfigurationHolder<TempSource>, TempConfigFactory> {
|
||||
extends ConfigurationFactory<TempSource, ConfigurationHolder<TempSource>, TempConfigFactory> {
|
||||
|
||||
public static @NotNull TempConfigFactory create() {
|
||||
return new TempConfigFactory();
|
||||
}
|
||||
|
||||
protected Map<String, Object> defaults = new LinkedHashMap<>();
|
||||
|
||||
public TempConfigFactory defaults(@NotNull Map<String, Object> defaults) {
|
||||
this.defaults = defaults;
|
||||
return this;
|
||||
}
|
||||
|
||||
public TempConfigFactory defaults(Supplier<Map<String, Object>> defaultsSupplier) {
|
||||
return defaults(defaultsSupplier.get());
|
||||
}
|
||||
|
||||
public TempConfigFactory defaults(@NotNull Consumer<Map<String, Object>> defaultsConsumer) {
|
||||
return defaults(() -> {
|
||||
Map<String, Object> defaults = new LinkedHashMap<>();
|
||||
defaultsConsumer.accept(defaults);
|
||||
return defaults;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TempConfigFactory self() {
|
||||
return this;
|
||||
@@ -20,7 +44,7 @@ public class TempConfigFactory
|
||||
public @NotNull ConfigurationHolder<TempSource> build() {
|
||||
|
||||
return new ConfigurationHolder<TempSource>(this.adapters, this.options, this.metadata, this.initializer) {
|
||||
final @NotNull TempSource source = new TempSource(this);
|
||||
final @NotNull TempSource source = new TempSource(this, defaults);
|
||||
|
||||
@Override
|
||||
public @NotNull TempSource config() {
|
||||
|
||||
@@ -4,18 +4,19 @@ import cc.carm.lib.configuration.source.ConfigurationHolder;
|
||||
import cc.carm.lib.configuration.source.section.ConfigureSource;
|
||||
import cc.carm.lib.configuration.source.section.SourcedSection;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
public class TempSource extends ConfigureSource<SourcedSection, Map<String, Object>, TempSource> {
|
||||
|
||||
protected @Nullable SourcedSection rootSection;
|
||||
|
||||
protected TempSource(@NotNull ConfigurationHolder<? extends TempSource> holder) {
|
||||
protected @NotNull SourcedSection rootSection;
|
||||
|
||||
protected TempSource(@NotNull ConfigurationHolder<? extends TempSource> holder,
|
||||
@NotNull Map<String, Object> defaults) {
|
||||
super(holder, 0);
|
||||
this.rootSection = SourcedSection.root(this);
|
||||
this.rootSection = SourcedSection.root(this, defaults);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<parent>
|
||||
<artifactId>configured-parent</artifactId>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<version>4.1.6</version>
|
||||
<version>4.1.7-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<properties>
|
||||
|
||||
Reference in New Issue
Block a user