public RpcModelBindingDataSource()

in src/main/java/com/microsoft/azure/functions/worker/binding/RpcModelBindingDataSource.java [27:53]


    public RpcModelBindingDataSource(String name, ModelBindingData modelData) {
        super(name, modelData, MODEL_BINDING_DATA_OPERATIONS);

        // Parse the JSON in modelData.getContent() => Map<String,String>
        String jsonString = modelData.getContent().toStringUtf8();
        if (jsonString == null || jsonString.isEmpty()) {
            throw new IllegalArgumentException(
                    "model_binding_data.content is empty or missing for name: " + name
            );
        }

        Map<String,String> parsed = null;
        try {
            Type mapType = new TypeToken<Map<String, String>>(){}.getType();
            parsed = GSON.fromJson(jsonString, mapType);
        } catch (Exception ex) {
            LOGGER.warning("Failed to parse model_binding_data JSON: " + ExceptionUtils.getRootCauseMessage(ex));
            throw new RuntimeException(ex);
        }

        if (parsed == null) {
            throw new IllegalArgumentException(
                    "model_binding_data.content was not valid JSON for name: " + name
            );
        }
        this.contentMap = parsed;
    }