class DefaultConfigValueEvaluator implements ConfigValueEvaluator {

    @Override
    public Map<String, PropertyValue> evaluateRawValues(ConfigurationContext context) {
        Map<String, PropertyValue> result = new HashMap<>();
        for (PropertySource propertySource : context.getPropertySources()) {
            for (PropertyValue val: propertySource.getProperties().values()) {
                if (val!=null && (val.getValueType() != PropertyValue.ValueType.VALUE || val.getValue() != null)){
                    result.put(val.getKey(), val);
                }
            }
        }
        return result;
    }

}