From 8e19748c7c3dfb8f576769d20696f381cb085ee3 Mon Sep 17 00:00:00 2001 From: carm Date: Wed, 12 Mar 2025 04:04:00 +0800 Subject: [PATCH] feat(map): Add more builder functions --- .../lib/configuration/builder/map/ConfigMapCreator.java | 9 +++++---- .../lib/configuration/builder/map/SectionMapBuilder.java | 4 ++++ .../lib/configuration/builder/map/SourceMapBuilder.java | 4 ++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/map/ConfigMapCreator.java b/core/src/main/java/cc/carm/lib/configuration/builder/map/ConfigMapCreator.java index 403ef32..d6c8d78 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/map/ConfigMapCreator.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/map/ConfigMapCreator.java @@ -3,10 +3,7 @@ package cc.carm.lib.configuration.builder.map; import cc.carm.lib.configuration.adapter.ValueType; import org.jetbrains.annotations.NotNull; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.TreeMap; +import java.util.*; import java.util.function.Supplier; public class ConfigMapCreator { @@ -45,4 +42,8 @@ public class ConfigMapCreator { return constructor(TreeMap::new); } + public @NotNull ConfigMapBuilder, K, V> asTreeMap(@NotNull Comparator comparator) { + return constructor(() -> new TreeMap<>(comparator)); + } + } \ No newline at end of file diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/map/SectionMapBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/map/SectionMapBuilder.java index 3802c0a..9899789 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/map/SectionMapBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/map/SectionMapBuilder.java @@ -75,6 +75,10 @@ public class SectionMapBuilder, K, V> }); } + public @NotNull SectionMapBuilder defaults(@NotNull K key, @NotNull V value) { + return defaults(map -> map.put(key, value)); + } + public @NotNull ValueAdapter buildKeyAdapter() { return new ValueAdapter<>(this.keyType) .parser((holder, type, data) -> { diff --git a/core/src/main/java/cc/carm/lib/configuration/builder/map/SourceMapBuilder.java b/core/src/main/java/cc/carm/lib/configuration/builder/map/SourceMapBuilder.java index 85520df..5120f46 100644 --- a/core/src/main/java/cc/carm/lib/configuration/builder/map/SourceMapBuilder.java +++ b/core/src/main/java/cc/carm/lib/configuration/builder/map/SourceMapBuilder.java @@ -53,6 +53,10 @@ public class SourceMapBuilder, SOURCE, K, V> }); } + public @NotNull SourceMapBuilder defaults(@NotNull K key, @NotNull V value) { + return defaults(map -> map.put(key, value)); + } + public @NotNull SourceMapBuilder parseKey(@NotNull DataFunction keyParser) { return parseKey((holder, data) -> keyParser.handle(data)); }