1 package org.matsim.core.config;
3 import org.apache.logging.log4j.LogManager;
4 import org.apache.logging.log4j.Logger;
6 import java.util.ArrayList;
7 import java.util.Deque;
8 import java.util.HashMap;
9 import java.util.Iterator;
10 import java.util.List;
12 import java.util.stream.Collectors;
18 private final Map<String, List<ConfigAlias>>
aliases =
new HashMap<>();
25 this.
addAlias(
"ReplanningAnnealer",
"replanningAnnealer");
26 this.
addAlias(
"TimeAllocationMutator",
"timeAllocationMutator");
28 this.
addAlias(
"controler",
"controller");
29 this.
addAlias(
"planCalcScore",
"scoring");
30 this.
addAlias(
"planscalcroute",
"routing");
31 this.
addAlias(
"strategy",
"replanning");
32 this.
addAlias(
"parallelEventHandling",
"eventsManager");
33 this.
addAlias(
"freight",
"freightCarriers");
35 this.
addAlias(
"BrainExpBeta",
"brainExpBeta",
"scoring");
36 this.
addAlias(
"PathSizeLogitBeta",
"pathSizeLogitBeta",
"scoring");
39 public void addAlias(String oldName, String newName, String... path) {
40 this.aliases.computeIfAbsent(oldName, k ->
new ArrayList<>(2)).add(
new ConfigAlias(oldName, newName, path));
47 public String
resolveAlias(String oldName, Deque<String> pathStack) {
48 List<ConfigAlias> definedAliases = this.aliases.get(oldName);
49 if (definedAliases == null || definedAliases.isEmpty()) {
53 boolean matches =
true;
55 if (alias.path.length > pathStack.size()) {
58 Iterator<String> iter = pathStack.iterator();
59 for (
int i = alias.path.length - 1; i >= 0; i--) {
61 String name = iter.next();
62 if (!name.equals(alias.path[i])) {
74 String stack = pathStack.stream().collect(Collectors.joining(
" < ", oldName +
" < ",
" /"));
75 LOG.warn(
"Config name '{}' is deprecated, please use '{}' instead. Config path: {}", oldName, alias.newName, stack);
82 public record
ConfigAlias(String oldName, String newName, String[] path) {
String resolveAlias(String oldName, Deque< String > pathStack)
final Map< String, List< ConfigAlias > > aliases
void addAlias(String oldName, String newName, String... path)
record ConfigAlias(String oldName, String newName, String[] path)