public ChangesRequiringRestart compareMap(Map<String, ? extends Node> from,
                                              Map<String, ? extends Node> to,
                                              String name,
                                              String comment,
                                              CompareFunc func) {
        if (!from.equals(to)) {
            for (String key : from.keySet()) {
                if (to.containsKey(key)) {
                    ChangesRequiringRestart childReport = func.getChangesRequiringRestart(from.get(key), to.get(key));
                    String prefix = childReport.componentName + "{" + key + "}";
                    mergeChanges(prefix, childReport);
                } else {
                    report.add(new ReportLine(name + "{" + key + "}", from.get(key), null, comment));
                }
            }
            for (String key : to.keySet()) {
                if (!from.containsKey(key)) {
                    report.add(new ReportLine(name + "{" + key + "}", null, to.get(key), comment));
                }
            }
        }
        return this;
    }
Interface used to pass lambda functions from generated code to compareArray/-Map functions.
config-lib/src/main/java/com/yahoo/config/ChangesRequiringRestart.java