private static IEnumerable GetErrorTransforms()

in codegen/src/Azure.Iot.Operations.ProtocolCompiler/EnvoyGenerator/EnvoyTransformFactory.cs [346:374]


        private static IEnumerable<ITemplateTransform> GetErrorTransforms(string language, string projectName, CodeName genNamespace, JsonElement errElt)
        {
            CodeName schemaName = new CodeName(errElt.GetProperty(AnnexFileProperties.ErrorSchema).GetString()!);
            CodeName schemaNamespace = errElt.TryGetProperty(AnnexFileProperties.ErrorNamespace, out JsonElement namespaceElt) ? new CodeName(namespaceElt.GetString()!) : genNamespace;
            string description = errElt.TryGetProperty(AnnexFileProperties.ErrorDescription, out JsonElement descriptionElt) ? descriptionElt.GetString() ?? schemaName.AsGiven : schemaName.AsGiven;
            CodeName? messageField = errElt.TryGetProperty(AnnexFileProperties.ErrorMessageField, out JsonElement msgFieldElt) ? new CodeName(msgFieldElt.GetString()!) : null;
            bool isNullable = errElt.TryGetProperty(AnnexFileProperties.ErrorMessageIsNullable, out JsonElement nullableElt) ? nullableElt.GetBoolean() : false;

            switch (language)
            {
                case "csharp":
                    yield return new DotNetError(projectName, schemaName, schemaNamespace, description, messageField, isNullable);
                    break;
                case "go":
                    yield return new GoError(schemaName, schemaNamespace, description, messageField, isNullable);
                    break;
                case "java":
                    break;
                case "python":
                    break;
                case "rust":
                    yield return new RustError(schemaName, schemaNamespace, description, messageField, isNullable);
                    break;
                case "c":
                    break;
                default:
                    throw GetLanguageNotRecognizedException(language);
            }
        }