diff --git a/core/pom.xml b/core/pom.xml
index 3d0c346..611f04b 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -5,7 +5,7 @@
easyconfiguration-parent
cc.carm.lib
- 4.0.2
+ 4.0.3
4.0.0
diff --git a/demo/pom.xml b/demo/pom.xml
index 6fc3c85..d6dfc7f 100644
--- a/demo/pom.xml
+++ b/demo/pom.xml
@@ -5,7 +5,7 @@
easyconfiguration-parent
cc.carm.lib
- 4.0.2
+ 4.0.3
4.0.0
diff --git a/features/commentable/pom.xml b/features/commentable/pom.xml
index e3d6329..102b7d1 100644
--- a/features/commentable/pom.xml
+++ b/features/commentable/pom.xml
@@ -6,7 +6,7 @@
cc.carm.lib
easyconfiguration-parent
- 4.0.2
+ 4.0.3
../../pom.xml
diff --git a/features/file/pom.xml b/features/file/pom.xml
index 3045891..4186f36 100644
--- a/features/file/pom.xml
+++ b/features/file/pom.xml
@@ -6,7 +6,7 @@
cc.carm.lib
easyconfiguration-parent
- 4.0.2
+ 4.0.3
../../pom.xml
diff --git a/features/section/pom.xml b/features/section/pom.xml
index 1f41fab..dc878fc 100644
--- a/features/section/pom.xml
+++ b/features/section/pom.xml
@@ -6,7 +6,7 @@
cc.carm.lib
easyconfiguration-parent
- 4.0.2
+ 4.0.3
../../pom.xml
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
new file mode 100644
index 0000000..8774d7d
--- /dev/null
+++ b/features/section/src/main/java/cc/carm/lib/configuration/source/section/MapSection.java
@@ -0,0 +1,146 @@
+package cc.carm.lib.configuration.source.section;
+
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.*;
+
+public abstract class MapSection> implements ConfigureSection {
+
+ protected final @NotNull Map data;
+ protected final @Nullable R parent;
+
+ protected MapSection(@NotNull Map, ?> data, @Nullable R parent) {
+ this.parent = parent;
+ this.data = new LinkedHashMap<>();
+ for (Map.Entry, ?> entry : data.entrySet()) {
+ String key = (entry.getKey() == null) ? "null" : entry.getKey().toString();
+ if (entry.getValue() instanceof Map) {
+ this.data.put(key, createChild((Map, ?>) entry.getValue()));
+ } else if (entry.getValue() instanceof List) {
+ List