From 7959783f0d5af81eb8a9e6f39ebfcae84ae96842 Mon Sep 17 00:00:00 2001 From: CarmJos Date: Sun, 17 Apr 2022 18:12:28 +0800 Subject: [PATCH] =?UTF-8?q?[1.0.2]=20=E6=B7=BB=E5=8A=A0Builder=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/pom.xml | 2 +- .../core/builder/ConfigBuilder.java | 12 +++++----- .../configuration/core/value/ConfigValue.java | 11 +++------ .../core/value/type/ConfiguredList.java | 7 ++++++ .../core/value/type/ConfiguredMap.java | 2 +- .../core/value/type/ConfiguredSection.java | 6 +++++ .../core/value/type/ConfiguredValue.java | 14 +++++++++++ impl/yaml/pom.xml | 2 +- .../java/config/source/TestConfiguration.java | 23 +++++++++++-------- platform/bungee/pom.xml | 2 +- platform/spigot/pom.xml | 2 +- pom.xml | 2 +- 12 files changed, 56 insertions(+), 29 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 122a91b..f7c1adc 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -5,7 +5,7 @@ easyconfiguration-parent cc.carm.lib - 1.0.1 + 1.0.2 4.0.0 diff --git a/core/src/main/java/cc/carm/lib/configuration/core/builder/ConfigBuilder.java b/core/src/main/java/cc/carm/lib/configuration/core/builder/ConfigBuilder.java index e47891d..c792ef8 100644 --- a/core/src/main/java/cc/carm/lib/configuration/core/builder/ConfigBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/core/builder/ConfigBuilder.java @@ -11,30 +11,30 @@ import java.util.TreeMap; public class ConfigBuilder { - public static @NotNull ConfigValueBuilder asValue(@NotNull Class valueClass) { + public @NotNull ConfigValueBuilder asValue(@NotNull Class valueClass) { return new ConfigValueBuilder<>(valueClass); } - public static @NotNull ConfigListBuilder asList(@NotNull Class valueClass) { + public @NotNull ConfigListBuilder asList(@NotNull Class valueClass) { return new ConfigListBuilder<>(valueClass); } - public static @NotNull ConfigMapBuilder, K, V> asMap(@NotNull Class keyClass, + public @NotNull ConfigMapBuilder, K, V> asMap(@NotNull Class keyClass, @NotNull Class valueClass) { return new ConfigMapBuilder<>(LinkedHashMap::new, keyClass, valueClass); } - public static @NotNull ConfigMapBuilder, K, V> asHashMap(@NotNull Class keyClass, + public @NotNull ConfigMapBuilder, K, V> asHashMap(@NotNull Class keyClass, @NotNull Class valueClass) { return asMap(keyClass, valueClass).supplier(HashMap::new); } - public static @NotNull ConfigMapBuilder, K, V> asLinkedMap(@NotNull Class keyClass, + public @NotNull ConfigMapBuilder, K, V> asLinkedMap(@NotNull Class keyClass, @NotNull Class valueClass) { return asMap(keyClass, valueClass); } - public static , V> @NotNull ConfigMapBuilder, K, V> asTreeMap(@NotNull Class keyClass, + public , V> @NotNull ConfigMapBuilder, K, V> asTreeMap(@NotNull Class keyClass, @NotNull Class valueClass) { return asMap(keyClass, valueClass).supplier(TreeMap::new); } diff --git a/core/src/main/java/cc/carm/lib/configuration/core/value/ConfigValue.java b/core/src/main/java/cc/carm/lib/configuration/core/value/ConfigValue.java index 5270809..09ea385 100644 --- a/core/src/main/java/cc/carm/lib/configuration/core/value/ConfigValue.java +++ b/core/src/main/java/cc/carm/lib/configuration/core/value/ConfigValue.java @@ -1,7 +1,6 @@ package cc.carm.lib.configuration.core.value; import cc.carm.lib.configuration.core.builder.ConfigBuilder; -import cc.carm.lib.configuration.core.builder.value.ConfigValueBuilder; import cc.carm.lib.configuration.core.source.ConfigurationProvider; import cc.carm.lib.configuration.core.source.ConfigurationWrapper; import org.jetbrains.annotations.NotNull; @@ -11,13 +10,9 @@ import java.util.Objects; import java.util.Optional; public abstract class ConfigValue { - - public static ConfigValueBuilder builder(Class valueClass) { - return ConfigBuilder.asValue(valueClass); - } - - public static ConfigValue of(Class valueClass) { - return builder(valueClass).fromObject().build(); + + public static @NotNull ConfigBuilder builder() { + return new ConfigBuilder(); } protected @Nullable T defaultValue; diff --git a/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredList.java b/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredList.java index 4f40410..77e4d18 100644 --- a/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredList.java +++ b/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredList.java @@ -1,8 +1,11 @@ package cc.carm.lib.configuration.core.value.type; +import cc.carm.lib.configuration.core.builder.ConfigBuilder; +import cc.carm.lib.configuration.core.builder.list.ConfigListBuilder; import cc.carm.lib.configuration.core.function.ConfigDataFunction; import cc.carm.lib.configuration.core.source.ConfigurationProvider; import cc.carm.lib.configuration.core.value.CachedConfigValue; +import cc.carm.lib.configuration.core.value.ConfigValue; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -11,6 +14,10 @@ import java.util.List; public class ConfiguredList extends CachedConfigValue> { + public static @NotNull ConfigListBuilder builder(@NotNull Class valueClass) { + return builder().asList(valueClass); + } + protected final @NotNull Class valueClass; protected final @NotNull ConfigDataFunction parser; diff --git a/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredMap.java b/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredMap.java index e1a9801..2e347b3 100644 --- a/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredMap.java +++ b/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredMap.java @@ -18,7 +18,7 @@ public class ConfiguredMap extends CachedConfigValue> { public static @NotNull ConfigMapBuilder, K, V> builder(@NotNull Class keyClass, @NotNull Class valueClass) { - return ConfigBuilder.asMap(keyClass, valueClass); + return builder().asMap(keyClass, valueClass); } protected final @NotNull Supplier> supplier; diff --git a/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredSection.java b/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredSection.java index c886362..6444002 100644 --- a/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredSection.java +++ b/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredSection.java @@ -1,5 +1,7 @@ package cc.carm.lib.configuration.core.value.type; +import cc.carm.lib.configuration.core.builder.ConfigBuilder; +import cc.carm.lib.configuration.core.builder.value.SectionValueBuilder; import cc.carm.lib.configuration.core.function.ConfigDataFunction; import cc.carm.lib.configuration.core.function.ConfigValueParser; import cc.carm.lib.configuration.core.source.ConfigurationProvider; @@ -13,6 +15,10 @@ import java.util.Optional; public class ConfiguredSection extends CachedConfigValue { + public static @NotNull SectionValueBuilder builder(@NotNull Class valueClass) { + return builder().asValue(valueClass).fromSection(); + } + protected final @NotNull Class valueClass; protected final @NotNull ConfigValueParser parser; diff --git a/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredValue.java b/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredValue.java index 57043cc..8537a6c 100644 --- a/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredValue.java +++ b/core/src/main/java/cc/carm/lib/configuration/core/value/type/ConfiguredValue.java @@ -1,5 +1,7 @@ package cc.carm.lib.configuration.core.value.type; +import cc.carm.lib.configuration.core.builder.ConfigBuilder; +import cc.carm.lib.configuration.core.builder.value.ConfigValueBuilder; import cc.carm.lib.configuration.core.function.ConfigDataFunction; import cc.carm.lib.configuration.core.function.ConfigValueParser; import cc.carm.lib.configuration.core.source.ConfigurationProvider; @@ -11,6 +13,18 @@ import java.util.Optional; public class ConfiguredValue extends CachedConfigValue { + public static ConfigValueBuilder builder(Class valueClass) { + return builder().asValue(valueClass); + } + + public static ConfiguredValue of(Class valueClass) { + return of(valueClass, null); + } + + public static ConfiguredValue of(Class valueClass, @Nullable V defaultValue) { + return builder(valueClass).fromObject().defaults(defaultValue).build(); + } + protected final @NotNull Class valueClass; protected final @NotNull ConfigValueParser parser; diff --git a/impl/yaml/pom.xml b/impl/yaml/pom.xml index f22f553..babf8a5 100644 --- a/impl/yaml/pom.xml +++ b/impl/yaml/pom.xml @@ -5,7 +5,7 @@ easyconfiguration-parent cc.carm.lib - 1.0.1 + 1.0.2 ../../pom.xml 4.0.0 diff --git a/impl/yaml/src/test/java/config/source/TestConfiguration.java b/impl/yaml/src/test/java/config/source/TestConfiguration.java index ce6628b..f4a2d66 100644 --- a/impl/yaml/src/test/java/config/source/TestConfiguration.java +++ b/impl/yaml/src/test/java/config/source/TestConfiguration.java @@ -3,9 +3,12 @@ package config.source; import cc.carm.lib.configuration.core.ConfigurationRoot; import cc.carm.lib.configuration.core.annotation.ConfigComment; import cc.carm.lib.configuration.core.annotation.ConfigPath; -import cc.carm.lib.configuration.core.builder.ConfigBuilder; import cc.carm.lib.configuration.core.util.MapFactory; import cc.carm.lib.configuration.core.value.ConfigValue; +import cc.carm.lib.configuration.core.value.type.ConfiguredList; +import cc.carm.lib.configuration.core.value.type.ConfiguredMap; +import cc.carm.lib.configuration.core.value.type.ConfiguredSection; +import cc.carm.lib.configuration.core.value.type.ConfiguredValue; import config.misc.TestUser; import java.util.List; @@ -16,8 +19,8 @@ import java.util.UUID; public class TestConfiguration extends ConfigurationRoot { @ConfigComment({"User测试"}) - public static final ConfigValue USER = ConfigBuilder - .asValue(TestUser.class).fromSection() + public static final ConfigValue USER = ConfiguredSection + .builder(TestUser.class) .defaults(new TestUser("Carm", UUID.randomUUID())) .parseValue((section, defaultValue) -> new TestUser( section.getString("name"), @@ -29,8 +32,8 @@ public class TestConfiguration extends ConfigurationRoot { ).build(); @ConfigComment({"[ID-UUID] 对照表", "", "用于测试Map类型的解析与序列化保存"}) - public static final ConfigValue> USERS = ConfigBuilder - .asMap(Integer.class, UUID.class).fromString() + public static final ConfigValue> USERS = ConfiguredMap + .builder(Integer.class, UUID.class).fromString() .parseKey(Integer::parseInt) .parseValue(v -> Objects.requireNonNull(UUID.fromString(v))) .build(); @@ -38,16 +41,18 @@ public class TestConfiguration extends ConfigurationRoot { public static class Sub { @ConfigPath("uuid") - public static final ConfigValue UUID_CONFIG_VALUE = ConfigBuilder - .asValue(UUID.class).fromString() + public static final ConfigValue UUID_CONFIG_VALUE = ConfiguredValue + .builder(UUID.class).fromString() .parseValue((data, defaultValue) -> UUID.fromString(data)) .build(); @ConfigPath("nothing") public static class That { - public static final ConfigValue> Operators = ConfigBuilder.asList(UUID.class).fromString() - .parseValue(s -> Objects.requireNonNull(UUID.fromString(s))).build(); + public static final ConfigValue> Operators = ConfiguredList + .builder(UUID.class).fromString() + .parseValue(s -> Objects.requireNonNull(UUID.fromString(s))) + .build(); } diff --git a/platform/bungee/pom.xml b/platform/bungee/pom.xml index c1dbf12..7ebf949 100644 --- a/platform/bungee/pom.xml +++ b/platform/bungee/pom.xml @@ -5,7 +5,7 @@ easyconfiguration-parent cc.carm.lib - 1.0.1 + 1.0.2 ../../pom.xml 4.0.0 diff --git a/platform/spigot/pom.xml b/platform/spigot/pom.xml index 541920a..1ff6487 100644 --- a/platform/spigot/pom.xml +++ b/platform/spigot/pom.xml @@ -5,7 +5,7 @@ easyconfiguration-parent cc.carm.lib - 1.0.1 + 1.0.2 ../../pom.xml 4.0.0 diff --git a/pom.xml b/pom.xml index 4eafa70..82f8a51 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ cc.carm.lib easyconfiguration-parent pom - 1.0.1 + 1.0.2 core