class EnvironmentPropertySource extends BasePropertySource {

    @Override
    public Map<String, PropertyValue> getProperties() {
        if(disabled){
            return Collections.emptyMap();
        }
        String prefix = this.prefix;
        if(prefix==null) {
            Map<String, PropertyValue> entries = new HashMap<>(System.getenv().size());
            for (Map.Entry<String, String> entry : System.getenv().entrySet()) {
                entries.put(entry.getKey(), PropertyValue.createValue(entry.getKey(), entry.getValue())
                        .setMeta("source", getName()));
            }
            return entries;
        }else{
            Map<String, PropertyValue> entries = new HashMap<>(System.getenv().size());
            for (Map.Entry<String, String> entry : System.getenv().entrySet()) {
                entries.put(prefix + entry.getKey(), PropertyValue.createValue(prefix + entry.getKey(), entry.getValue())
                        .setMeta("source", getName()));
            }
            return entries;
        }
    }

    public  EnvironmentPropertySource();
    public  EnvironmentPropertySource(int ordinal);
    public  EnvironmentPropertySource(String prefix, int ordinal);
    public  EnvironmentPropertySource(String prefix);

}