private synchronized CompositeMap<IOption, Object> compositeFrom(Stream<Map<IOption, Object>> stream) { List<Map<IOption, Object>> list = stream.collect(Collectors.toList()); CompositeMap<IOption, Object> map = new CompositeMap<>(); map.setMutator(new NoOpMapMutator()); for (ListIterator<Map<IOption, Object>> iter = list.listIterator(list.size()); iter.hasPrevious();) { map.addComposited(iter.previous()); } return map; }
private void applyDefaults() { LOGGER.debug("applying defaults"); sectionMap.forEach((key, value) -> { value.values().forEach( option -> getNodeNames().forEach(node -> getOrDefault(getNodeEffectiveMap(node), option, node))); for (Map.Entry<String, Map<IOption, Object>> nodeMap : nodeSpecificDefinedMap.entrySet()) { value.values() .forEach(option -> getOrDefault( new CompositeMap<>(nodeMap.getValue(), definedMap, new NoOpMapMutator()), option, nodeMap.getKey())); } }); }