class SimpleDataAccessConfigBuilder implements DataAccessConfigBuilder {

    private List<DataAccessConfigConverter> converts;

    private Map<String, Object> config = new HashMap<>();


    public SimpleDataAccessConfigBuilder(List<DataAccessConfigConverter> converts) {
        Objects.requireNonNull(converts);
        this.converts = converts;
    }

    @Override
    public DataAccessConfigBuilder fromJson(String json) {
        config.putAll(JSON.parseObject(json));
        return this;
    }

    @Override
    public DataAccessConfigBuilder fromMap(Map<String, Object> map) {
        config.putAll(map);
        return this;
    }

    @Override
    public DataAccessConfig build() {<FILL_FUNCTION_BODY>}
}

        Objects.requireNonNull(config);
        JSONObject jsonObject = new JSONObject(config);

        String type = jsonObject.getString("type");
        String action = jsonObject.getString("action");
        String config = jsonObject.getString("config");

        Objects.requireNonNull(type);
        Objects.requireNonNull(action);

        if (config == null) {
            config = jsonObject.toJSONString();
        }
        String finalConfig = config;

        return converts.stream()
                .filter(convert -> convert.isSupport(type, action, finalConfig))
                .map(convert -> convert.convert(type, action, finalConfig))
                .findFirst()
                .orElse(null);
    
<no_super_class>