public MergedValueMap()

in src/main/java/org/apache/sling/resourcemerger/impl/MergedValueMap.java [54:77]


    public MergedValueMap(final List<ValueMap> valueMaps) {
        super(new HashMap<>());
        
        // Iterate over value maps
        for (final ValueMap vm : valueMaps) {
            // Get properties to hide from local or underlying value maps
            String[] hideSettings = vm.get(MergedResourceConstants.PN_HIDE_PROPERTIES, String[].class);
            if (hideSettings != null) {
                HideItemPredicate hidePredicate = new HideItemPredicate(hideSettings, MergedResourceConstants.PN_HIDE_PROPERTIES);
                
                // go over the already existing properties
                this.entrySet().removeIf(entry -> hidePredicate.testItem(entry.getKey(), false));
                
                // then go over the new properties
                this.putAll(vm.entrySet().stream()
                        .filter(entry -> !(EXCLUDED_PROPERTIES.contains(entry.getKey())) && !(hidePredicate.testItem(entry.getKey(), true)) )
                        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
            } else {
                this.putAll(vm.entrySet().stream()
                        .filter(entry -> !(EXCLUDED_PROPERTIES.contains(entry.getKey())))
                        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)));
            }
        }
    }