1
mirror of https://github.com/CarmJos/EasyConfiguration.git synced 2024-09-18 19:55:51 +00:00

chore(map): Optimize Map builders.

This commit is contained in:
Carm Jos 2024-01-05 01:26:50 +08:00
parent c91794c611
commit 21a8906ad9
4 changed files with 12 additions and 11 deletions

View File

@ -8,12 +8,12 @@ import java.util.function.Supplier;
public class ConfigMapBuilder<M extends Map<K, V>, K, V> {
protected final @NotNull Supplier<@NotNull M> supplier;
protected final @NotNull Supplier<? extends M> supplier;
protected final @NotNull Class<K> keyClass;
protected final @NotNull Class<V> valueClass;
public ConfigMapBuilder(@NotNull Supplier<@NotNull M> supplier, @NotNull Class<K> keyClass, @NotNull Class<V> valueClass) {
public ConfigMapBuilder(@NotNull Supplier<? extends M> supplier, @NotNull Class<K> keyClass, @NotNull Class<V> valueClass) {
this.supplier = supplier;
this.keyClass = keyClass;
this.valueClass = valueClass;

View File

@ -2,10 +2,7 @@ package cc.carm.lib.configuration.core.builder.map;
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<K, V> {
@ -18,7 +15,7 @@ public class ConfigMapCreator<K, V> {
this.valueClass = valueClass;
}
public <M extends Map<K, V>> @NotNull ConfigMapBuilder<M, K, V> asMap(Supplier<M> mapSuppler) {
public <M extends Map<K, V>> @NotNull ConfigMapBuilder<M, K, V> asMap(Supplier<? extends M> mapSuppler) {
return new ConfigMapBuilder<>(mapSuppler, keyClass, valueClass);
}
@ -34,4 +31,8 @@ public class ConfigMapCreator<K, V> {
return asMap(TreeMap::new);
}
public @NotNull ConfigMapBuilder<TreeMap<K, V>, K, V> asTreeMap(@NotNull Comparator<? super K> comparator) {
return asMap(() -> new TreeMap<>(comparator));
}
}

View File

@ -15,7 +15,7 @@ import java.util.function.Supplier;
public class SectionMapBuilder<M extends Map<K, V>, K, V> extends CommonConfigBuilder<M, SectionMapBuilder<M, K, V>> {
protected final @NotNull Supplier<@NotNull M> supplier;
protected final @NotNull Supplier<? extends M> supplier;
protected final @NotNull Class<K> keyClass;
protected @NotNull ConfigDataFunction<String, K> keyParser;
@ -26,7 +26,7 @@ public class SectionMapBuilder<M extends Map<K, V>, K, V> extends CommonConfigBu
protected @NotNull ConfigDataFunction<K, String> keySerializer;
protected @NotNull ConfigDataFunction<V, ? extends Map<String, Object>> valueSerializer;
public SectionMapBuilder(@NotNull Supplier<@NotNull M> supplier,
public SectionMapBuilder(@NotNull Supplier<? extends M> supplier,
@NotNull Class<K> keyClass, @NotNull ConfigDataFunction<String, K> keyParser,
@NotNull Class<V> valueClass, @NotNull ConfigDataFunction<ConfigurationWrapper<?>, V> valueParser,
@NotNull ConfigDataFunction<K, String> keySerializer,

View File

@ -12,7 +12,7 @@ import java.util.function.Supplier;
public class SourceMapBuilder<M extends Map<K, V>, S, K, V> extends CommonConfigBuilder<M, SourceMapBuilder<M, S, K, V>> {
protected final @NotNull Supplier<@NotNull M> supplier;
protected final @NotNull Supplier<? extends M> supplier;
protected final @NotNull Class<K> keyClass;
protected @NotNull ConfigDataFunction<String, K> keyParser;
@ -27,7 +27,7 @@ public class SourceMapBuilder<M extends Map<K, V>, S, K, V> extends CommonConfig
protected @NotNull ConfigDataFunction<V, S> valueSerializer;
protected @NotNull ConfigDataFunction<S, Object> sourceSerializer;
public SourceMapBuilder(@NotNull Supplier<@NotNull M> supplier,
public SourceMapBuilder(@NotNull Supplier<? extends M> supplier,
@NotNull Class<K> keyClass, @NotNull ConfigDataFunction<String, K> keyParser,
@NotNull Class<S> sourceClass, @NotNull ConfigDataFunction<Object, S> sourceParser,
@NotNull Class<V> valueClass, @NotNull ConfigDataFunction<S, V> valueParser,