From d8191b7c6da19685d6cab97e5c92675f919fce0a Mon Sep 17 00:00:00 2001 From: carm Date: Fri, 21 Feb 2025 02:00:36 +0800 Subject: [PATCH] feat(section): Add original method --- .../configuration/source/section/MapSection.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/features/section/src/main/java/cc/carm/lib/configuration/source/section/MapSection.java b/features/section/src/main/java/cc/carm/lib/configuration/source/section/MapSection.java index 5730c79..9a11614 100644 --- a/features/section/src/main/java/cc/carm/lib/configuration/source/section/MapSection.java +++ b/features/section/src/main/java/cc/carm/lib/configuration/source/section/MapSection.java @@ -2,6 +2,7 @@ package cc.carm.lib.configuration.source.section; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.UnmodifiableView; import java.util.*; @@ -48,6 +49,19 @@ public abstract class MapSection> implements ConfigureSe return this.data; } + @UnmodifiableView + public @NotNull Map original() { + Map output = new LinkedHashMap<>(); + for (Map.Entry entry : this.data.entrySet()) { + if (entry.getValue() instanceof MapSection) { + output.put(entry.getKey(), ((MapSection) entry.getValue()).original()); + } else { + output.put(entry.getKey(), entry.getValue()); + } + } + return output; + } + public @Nullable R parent() { return this.parent; }