in freemarker-generator-base/src/main/java/org/apache/freemarker/generator/base/util/MapBuilder.java [25:54]
public static Map<String, Object> toLinkedMap(Object... nameValuePairs) {
final HashMap<String, Object> map = new LinkedHashMap<>();
if (nameValuePairs.length % 2 != 0) {
throw new IllegalArgumentException("Odd number of arguments");
}
String currKey = null;
int step = -1;
for (Object value : nameValuePairs) {
step++;
switch (step % 2) {
case 0:
if (value == null) {
throw new IllegalArgumentException("Null key value");
}
currKey = value.toString();
continue;
case 1:
map.put(currKey, value);
break;
default:
throw new RuntimeException("That should never happen");
}
}
return map;
}