[config-core-v1] keep preset order
ci/woodpecker/push/docs Pipeline was successful Details
ci/woodpecker/push/jfmod Pipeline was successful Details

This commit is contained in:
Johannes Frohnmeyer 2023-03-18 16:52:15 +01:00
parent 0821ce57c2
commit fbbb2fb166
Signed by: Johannes
GPG Key ID: E76429612C2929F4
2 changed files with 16 additions and 10 deletions

View File

@ -54,7 +54,7 @@ public class ConfigProcessor extends AbstractProcessor2 {
.collect(Collectors.toMap(
ClassName::simpleNames,
seen::get,
(u, v) -> u,
(u, v) -> v,
() -> new TreeMap<>(StringListComparator.INSTANCE.reversed())
));
// Generate additional parent classes

View File

@ -3,8 +3,7 @@ package io.gitlab.jfronny.libjf.config.impl.dsl;
import io.gitlab.jfronny.libjf.config.api.v1.*;
import io.gitlab.jfronny.libjf.config.api.v1.dsl.CategoryBuilder;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@ -14,7 +13,7 @@ public class DslConfigCategory implements ConfigCategory {
private final String categoryPath;
private final String translationPrefix;
private final List<EntryInfo<?>> entries;
private final Map<String, Consumer<ConfigCategory>> presets;
private final Map<String, Runnable> presets;
private final List<Supplier<List<ConfigInstance>>> referencedConfigs;
private final Map<String, ConfigCategory> categories;
private final Supplier<ConfigInstance> root;
@ -33,9 +32,19 @@ public class DslConfigCategory implements ConfigCategory {
this.categoryPath = categoryPath;
this.translationPrefix = translationPrefix;
this.entries = entries;
this.presets = presets;
this.presets = presets.entrySet().stream().collect(Collectors.toMap(
Map.Entry::getKey,
t -> () -> t.getValue().accept(this),
(u, v) -> v,
LinkedHashMap::new
));
this.referencedConfigs = referencedConfigs;
this.categories = categories.stream().collect(Collectors.toMap(CategoryBuilder::getId, b -> b.build(root)));
this.categories = categories.stream().collect(Collectors.toMap(
CategoryBuilder::getId,
b -> b.build(root),
(u, v) -> v,
LinkedHashMap::new
));
this.root = root;
this.verifiers = verifiers;
}
@ -62,10 +71,7 @@ public class DslConfigCategory implements ConfigCategory {
@Override
public Map<String, Runnable> getPresets() {
return presets.entrySet().stream().collect(Collectors.toMap(
Map.Entry::getKey,
t -> () -> t.getValue().accept(this)
));
return presets;
}
@Override