private static ConfigValueInfo convertConfigValue(ConfigValue configValue, Type type) {
        String value = ConfigDef.convertToString(configValue.value(), type);
        List<String> recommendedValues = new LinkedList<>();

        if (type == Type.LIST) {
            for (Object object: configValue.recommendedValues()) {
                recommendedValues.add(ConfigDef.convertToString(object, Type.STRING));
            }
        } else {
            for (Object object : configValue.recommendedValues()) {
                recommendedValues.add(ConfigDef.convertToString(object, type));
            }
        }
        return new ConfigValueInfo(configValue.name(), value, recommendedValues, configValue.errorMessages(), configValue.visible());
    }
Build the {@link RestartPlan} that describes what should and should not be restarted given the restart request
and the current status of the connector and task instances.

@param request the restart request; may not be null
@return the restart plan, or empty if this worker has no status for the connector named in the request and therefore the
        connector cannot be restarted
connect/runtime/src/main/java/org/apache/kafka/connect/runtime/AbstractHerder.java