mirror of
https://github.com/CarmJos/EasyConfiguration.git
synced 2024-09-19 12:15:52 +00:00
chore(map): Optimize Map builders.
This commit is contained in:
parent
c91794c611
commit
21a8906ad9
@ -8,12 +8,12 @@ import java.util.function.Supplier;
|
|||||||
|
|
||||||
public class ConfigMapBuilder<M extends Map<K, V>, K, V> {
|
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<K> keyClass;
|
||||||
protected final @NotNull Class<V> valueClass;
|
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.supplier = supplier;
|
||||||
this.keyClass = keyClass;
|
this.keyClass = keyClass;
|
||||||
this.valueClass = valueClass;
|
this.valueClass = valueClass;
|
||||||
|
@ -2,10 +2,7 @@ package cc.carm.lib.configuration.core.builder.map;
|
|||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.*;
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.TreeMap;
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
public class ConfigMapCreator<K, V> {
|
public class ConfigMapCreator<K, V> {
|
||||||
@ -18,7 +15,7 @@ public class ConfigMapCreator<K, V> {
|
|||||||
this.valueClass = valueClass;
|
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);
|
return new ConfigMapBuilder<>(mapSuppler, keyClass, valueClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -34,4 +31,8 @@ public class ConfigMapCreator<K, V> {
|
|||||||
return asMap(TreeMap::new);
|
return asMap(TreeMap::new);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public @NotNull ConfigMapBuilder<TreeMap<K, V>, K, V> asTreeMap(@NotNull Comparator<? super K> comparator) {
|
||||||
|
return asMap(() -> new TreeMap<>(comparator));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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>> {
|
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 final @NotNull Class<K> keyClass;
|
||||||
protected @NotNull ConfigDataFunction<String, K> keyParser;
|
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<K, String> keySerializer;
|
||||||
protected @NotNull ConfigDataFunction<V, ? extends Map<String, Object>> valueSerializer;
|
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<K> keyClass, @NotNull ConfigDataFunction<String, K> keyParser,
|
||||||
@NotNull Class<V> valueClass, @NotNull ConfigDataFunction<ConfigurationWrapper<?>, V> valueParser,
|
@NotNull Class<V> valueClass, @NotNull ConfigDataFunction<ConfigurationWrapper<?>, V> valueParser,
|
||||||
@NotNull ConfigDataFunction<K, String> keySerializer,
|
@NotNull ConfigDataFunction<K, String> keySerializer,
|
||||||
|
@ -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>> {
|
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 final @NotNull Class<K> keyClass;
|
||||||
protected @NotNull ConfigDataFunction<String, K> keyParser;
|
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<V, S> valueSerializer;
|
||||||
protected @NotNull ConfigDataFunction<S, Object> sourceSerializer;
|
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<K> keyClass, @NotNull ConfigDataFunction<String, K> keyParser,
|
||||||
@NotNull Class<S> sourceClass, @NotNull ConfigDataFunction<Object, S> sourceParser,
|
@NotNull Class<S> sourceClass, @NotNull ConfigDataFunction<Object, S> sourceParser,
|
||||||
@NotNull Class<V> valueClass, @NotNull ConfigDataFunction<S, V> valueParser,
|
@NotNull Class<V> valueClass, @NotNull ConfigDataFunction<S, V> valueParser,
|
||||||
|
Loading…
Reference in New Issue
Block a user