public string GenerateUrlParameterDefinition()

in src/JetBrains.Space.Generator/CodeGeneration/CSharp/Generators/CSharpApiModelUrlParameterGenerator.cs [15:54]


    public string GenerateUrlParameterDefinition(ApiUrlParameter apiUrlParameter)
    {
        var indent = new Indent();
        var builder = new CSharpBuilder();
            
        var typeNameForUrlParameter = apiUrlParameter.ToCSharpClassName();
            
        if (apiUrlParameter.Deprecation != null)
        {
            builder.AppendLine($"{indent}{apiUrlParameter.Deprecation.ToCSharpDeprecation()}");
        }
        else if (apiUrlParameter.Experimental != null && FeatureFlags.GenerateExperimentalAnnotations)
        {
            builder.AppendLine($"{indent}{apiUrlParameter.Experimental.ToCSharpExperimental()}");
        }

        // Parameter type
        builder.AppendLine($"{indent}[JsonConverter(typeof(UrlParameterConverter))]");
        builder.AppendLine($"{indent}public abstract class {typeNameForUrlParameter} : IUrlParameter");
        builder.AppendLine($"{indent}{{");
        indent.Increment();
            
        foreach (var apiUrlParameterOption in apiUrlParameter.Options)
        {
            builder.Append(
                indent.Wrap(
                    GenerateUrlParameterOptionFactoryMethod(apiUrlParameter, apiUrlParameterOption, typeNameForUrlParameter)));
        }
            
        foreach (var apiUrlParameterOption in apiUrlParameter.Options)
        {
            builder.Append(
                indent.Wrap(
                    GenerateUrlParameterOptionClass(apiUrlParameterOption, typeNameForUrlParameter)));
        }
            
        indent.Decrement();
        builder.AppendLine($"{indent}}}");
        return builder.ToString();
    }