private int haveAnyEffectiveValuesChanged(final Map<PropertyPath, Optional<String>> currentEffectiveValues,
                                              final Map<PropertyPath, SourceType> currentSources) {

        final int changeCount = allPropertyPaths.stream()
                .mapToInt(propertyPath -> {

                    final Optional<String> effectiveValueBefore = currentEffectiveValues
                            .getOrDefault(propertyPath, Optional.empty());
                    final SourceType sourceBefore = currentSources.get(propertyPath);

                    final boolean wasChanged = hasEffectiveValueChanged(
                            propertyPath,
                            effectiveValueBefore,
                            sourceBefore);

                    return wasChanged
                            ? 1
                            : 0;
                })
                .sum();

        return changeCount;
    }
@param dbConfigProperty The config property object obtained from the database
@return The updated typed value from the object model
stroom-config/stroom-config-global-impl/src/main/java/stroom/config/global/impl/ConfigMapper.java