From 34bc7601ee0f02c3f56509dfcff8b7fd3a0ffda8 Mon Sep 17 00:00:00 2001 From: carm Date: Thu, 4 Jan 2024 21:29:06 +0800 Subject: [PATCH] docs(sample): Add sample codes. :apple: --- .../core/function/ConfigValueParser.java | 3 +++ impl/yaml/src/test/java/sample/Sample.java | 18 +++++++++++++++ .../Sample.java => sample/SampleConfig.java} | 23 ++++--------------- 3 files changed, 25 insertions(+), 19 deletions(-) create mode 100644 impl/yaml/src/test/java/sample/Sample.java rename impl/yaml/src/test/java/{config/Sample.java => sample/SampleConfig.java} (63%) diff --git a/core/src/main/java/cc/carm/lib/configuration/core/function/ConfigValueParser.java b/core/src/main/java/cc/carm/lib/configuration/core/function/ConfigValueParser.java index 0da39dc..8d3989d 100644 --- a/core/src/main/java/cc/carm/lib/configuration/core/function/ConfigValueParser.java +++ b/core/src/main/java/cc/carm/lib/configuration/core/function/ConfigValueParser.java @@ -6,6 +6,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Objects; +import java.util.UUID; @FunctionalInterface public interface ConfigValueParser { @@ -69,6 +70,8 @@ public interface ConfigValueParser { } else if (Enum.class.isAssignableFrom(valueClass) && input instanceof String) { String enumName = (String) input; input = valueClass.getDeclaredMethod("valueOf", String.class).invoke(null, enumName); + } else if (UUID.class.isAssignableFrom(valueClass) && input instanceof String) { + input = UUID.fromString((String) input); } if (valueClass.isInstance(input)) return valueClass.cast(input); diff --git a/impl/yaml/src/test/java/sample/Sample.java b/impl/yaml/src/test/java/sample/Sample.java new file mode 100644 index 0000000..caaa989 --- /dev/null +++ b/impl/yaml/src/test/java/sample/Sample.java @@ -0,0 +1,18 @@ +package sample; + +import cc.carm.lib.configuration.EasyConfiguration; +import cc.carm.lib.configuration.core.source.ConfigurationProvider; + +public class Sample { + + public static void main(String[] args) { + // 1. Make a configuration provider from a file. + ConfigurationProvider provider = EasyConfiguration.from("config.yml"); + // 2. Initialize the configuration classes or instances. + provider.initialize(SampleConfig.class); + // 3. Enjoy using the configuration! + SampleConfig.ENABLED.set(false); + System.out.println("Your name is " + SampleConfig.INFO.NAME.getNotNull() + " !"); + } + +} diff --git a/impl/yaml/src/test/java/config/Sample.java b/impl/yaml/src/test/java/sample/SampleConfig.java similarity index 63% rename from impl/yaml/src/test/java/config/Sample.java rename to impl/yaml/src/test/java/sample/SampleConfig.java index 5142fb4..6e32128 100644 --- a/impl/yaml/src/test/java/config/Sample.java +++ b/impl/yaml/src/test/java/sample/SampleConfig.java @@ -1,18 +1,16 @@ -package config; +package sample; -import cc.carm.lib.configuration.EasyConfiguration; import cc.carm.lib.configuration.core.Configuration; import cc.carm.lib.configuration.core.annotation.ConfigPath; import cc.carm.lib.configuration.core.annotation.HeaderComment; import cc.carm.lib.configuration.core.annotation.InlineComment; -import cc.carm.lib.configuration.core.source.ConfigurationProvider; import cc.carm.lib.configuration.core.value.type.ConfiguredList; import cc.carm.lib.configuration.core.value.type.ConfiguredValue; import java.util.UUID; @HeaderComment("Configurations for sample") -interface SampleConfig extends Configuration { +public interface SampleConfig extends Configuration { @InlineComment("Enabled?") // Inline comment ConfiguredValue ENABLED = ConfiguredValue.of(true); @@ -25,25 +23,12 @@ interface SampleConfig extends Configuration { ).build(); interface INFO extends Configuration { + @HeaderComment("Configure your name!") // Header comment ConfiguredValue NAME = ConfiguredValue.of("Joker"); @ConfigPath("year") // Custom path ConfiguredValue AGE = ConfiguredValue.of(24); + } - -} - -public class Sample { - - public static void main(String[] args) { - // 1. Make a configuration provider from a file. - ConfigurationProvider provider = EasyConfiguration.from("config.yml"); - // 2. Initialize the configuration classes or instances. - provider.initialize(SampleConfig.class); - // 3. Enjoy using the configuration! - SampleConfig.ENABLED.set(false); - System.out.println("Your name is " + SampleConfig.INFO.NAME.getNotNull() + " !"); - } - }