From bf6ea97b99990305ebcb9fc2b16e3f3d15021594 Mon Sep 17 00:00:00 2001 From: carm Date: Mon, 17 Feb 2025 01:40:41 +0800 Subject: [PATCH] feaT(unit): Add unit meta --- .../source/loader/ConfigurationInitializer.java | 2 ++ .../lib/configuration/source/meta/StandardMeta.java | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100644 core/src/main/java/cc/carm/lib/configuration/source/meta/StandardMeta.java diff --git a/core/src/main/java/cc/carm/lib/configuration/source/loader/ConfigurationInitializer.java b/core/src/main/java/cc/carm/lib/configuration/source/loader/ConfigurationInitializer.java index d49cdd2..059407e 100644 --- a/core/src/main/java/cc/carm/lib/configuration/source/loader/ConfigurationInitializer.java +++ b/core/src/main/java/cc/carm/lib/configuration/source/loader/ConfigurationInitializer.java @@ -3,6 +3,7 @@ package cc.carm.lib.configuration.source.loader; import cc.carm.lib.configuration.Configuration; import cc.carm.lib.configuration.source.ConfigurationHolder; import cc.carm.lib.configuration.source.meta.ConfigurationMetadata; +import cc.carm.lib.configuration.source.meta.StandardMeta; import cc.carm.lib.configuration.source.option.StandardOptions; import cc.carm.lib.configuration.value.ConfigValue; import org.jetbrains.annotations.NotNull; @@ -168,6 +169,7 @@ public class ConfigurationInitializer { String path = getFieldPath(holder, parent, field); if (path == null) return; value.initialize(holder, path); + holder.metadata(path).set(StandardMeta.UNIT, true); // Mark the minimal config value unit. try { this.fieldInitializer.whenInitialize(holder, path, field); } catch (Exception e) { diff --git a/core/src/main/java/cc/carm/lib/configuration/source/meta/StandardMeta.java b/core/src/main/java/cc/carm/lib/configuration/source/meta/StandardMeta.java new file mode 100644 index 0000000..980e1ff --- /dev/null +++ b/core/src/main/java/cc/carm/lib/configuration/source/meta/StandardMeta.java @@ -0,0 +1,10 @@ +package cc.carm.lib.configuration.source.meta; + +public interface StandardMeta { + + /** + * To mark the {@link cc.carm.lib.configuration.value.ConfigValue} as a minimal unit path. + */ + ConfigurationMetadata UNIT = ConfigurationMetadata.of(false); + +}