private static IReadOnlyDictionary ParseAcronymMapping()

in src/AutoRest.CSharp/Mgmt/AutoRest/MgmtConfiguration.cs [109:210]


        private static IReadOnlyDictionary<string, AcronymMappingTarget> ParseAcronymMapping(IReadOnlyDictionary<string, string> acronymMapping)
            => acronymMapping.ToDictionary(kv => kv.Key, kv => AcronymMappingTarget.Parse(kv.Value));

        public MgmtConfiguration(
            IReadOnlyList<string> operationGroupsToOmit,
            IReadOnlyList<string> requestPathIsNonResource,
            IReadOnlyList<string> noPropertyTypeReplacement,
            IReadOnlyList<string> listException,
            IReadOnlyList<string> promptedEnumValues,
            IReadOnlyList<string> keepOrphanedModels,
            IReadOnlyList<string> keepPluralEnums,
            IReadOnlyList<string> keepPluralResourceData,
            IReadOnlyList<string> noResourceSuffix,
            IReadOnlyList<string> schemasToPrependRPPrefix,
            IReadOnlyList<string> generateArmResourceExtensions,
            IReadOnlyList<string> parameterizedScopes,
            IReadOnlyList<string> operationsToSkipLroApiVersionOverride,
            MgmtDebugConfiguration mgmtDebug,
            JsonElement? requestPathToParent = default,
            JsonElement? requestPathToResourceName = default,
            JsonElement? requestPathToResourceData = default,
            JsonElement? requestPathToResourceType = default,
            JsonElement? requestPathToScopeResourceTypes = default,
            JsonElement? requestPathToSingletonResource = default,
            JsonElement? overrideOperationName = default,
            JsonElement? operationPositions = default,
            JsonElement? acronymMapping = default,
            JsonElement? renamePropertyBag = default,
            JsonElement? formatByNameRules = default,
            JsonElement? renameMapping = default,
            JsonElement? parameterRenameMapping = default,
            JsonElement? irregularPluralWords = default,
            JsonElement? mergeOperations = default,
            JsonElement? armCore = default,
            JsonElement? resourceModelRequiresType = default,
            JsonElement? resourceModelRequiresName = default,
            JsonElement? singletonRequiresKeyword = default,
            JsonElement? operationIdMappings = default,
            JsonElement? updateRequiredCopy = default,
            JsonElement? patchInitializerCustomization = default,
            JsonElement? partialResources = default,
            JsonElement? privilegedOperations = default,
            JsonElement? operationsToLroApiVersionOverride = default)
        {
            MgmtReport.Instance.Reset();
            RequestPathToParent = DeserializeDictionary<string, string>(requestPathToParent);
            RequestPathToResourceName = DeserializeDictionary<string, string>(requestPathToResourceName);
            RequestPathToResourceData = DeserializeDictionary<string, string>(requestPathToResourceData);
            RequestPathToResourceType = DeserializeDictionary<string, string>(requestPathToResourceType);
            RequestPathToScopeResourceTypes = DeserializeDictionary<string, string[]>(requestPathToScopeResourceTypes);
            RequestPathToSingletonResource = DeserializeDictionary<string, string>(requestPathToSingletonResource);
            OverrideOperationName = DeserializeDictionary<string, string>(overrideOperationName).AddToTransformerStore(TransformTypeName.OverrideOperationName, fromConfig: true);
            RawAcronymMapping = DeserializeDictionary<string, string>(acronymMapping).AddToTransformerStore(TransformTypeName.AcronymMapping, fromConfig: true);
            RenamePropertyBag = DeserializeDictionary<string, string>(renamePropertyBag);
            FormatByNameRules = DeserializeDictionary<string, string>(formatByNameRules).AddToTransformerStore(TransformTypeName.FormatByNameRules, fromConfig: true);
            RenameMapping = DeserializeDictionary<string, string>(renameMapping).AddToTransformerStore(TransformTypeName.RenameMapping, fromConfig: true);
            ParameterRenameMapping = DeserializeDictionary<string, IReadOnlyDictionary<string, string>>(parameterRenameMapping).AddToTransformerStore(TransformTypeName.ParameterRenameMapping,(arg) => arg.Value.Select(valueKV => new TransformItem(arg.Type, arg.Key, true /*fromConfig*/, valueKV.Key, valueKV.Value)));
            IrregularPluralWords = DeserializeDictionary<string, string>(irregularPluralWords);
            PartialResources = DeserializeDictionary<string, string>(partialResources);
            try
            {
                OperationPositions = DeserializeDictionary<string, string[]>(operationPositions);
            }
            catch (JsonException)
            {
                var operationPositionsStrDict = DeserializeDictionary<string, string>(operationPositions);
                OperationPositions = operationPositionsStrDict.ToDictionary(kv => kv.Key, kv => kv.Value.Split(";"));
            }
            MgmtDebug = mgmtDebug;
            // TODO: A unified way to load from both readme and configuration.json
            try
            {
                MergeOperations = DeserializeDictionary<string, string[]>(mergeOperations);
            }
            catch (JsonException)
            {
                var mergeOperationsStrDict = DeserializeDictionary<string, string>(mergeOperations);
                MergeOperations = mergeOperationsStrDict.ToDictionary(kv => kv.Key, kv => kv.Value.Split(";"));
            }
            OperationGroupsToOmit = operationGroupsToOmit.AddToTransformerStore(Mgmt.Report.TransformTypeName.OperationGroupsToOmit, fromConfig: true);
            RequestPathIsNonResource = requestPathIsNonResource.AddToTransformerStore(TransformTypeName.RequestPathIsNonResource, fromConfig: true);
            NoPropertyTypeReplacement = noPropertyTypeReplacement.AddToTransformerStore(TransformTypeName.NoPropertyTypeReplacement, fromConfig: true);
            ListException = listException;
            PromptedEnumValues = promptedEnumValues;
            KeepOrphanedModels = keepOrphanedModels;
            KeepPluralEnums = keepPluralEnums.AddToTransformerStore(TransformTypeName.KeepPluralEnums, fromConfig: true);
            KeepPluralResourceData = keepPluralResourceData.AddToTransformerStore(TransformTypeName.KeepPluralResourceData, fromConfig: true);
            NoResourceSuffix = noResourceSuffix.AddToTransformerStore(TransformTypeName.NoResourceSuffix, fromConfig: true);
            PrependRPPrefix = schemasToPrependRPPrefix.AddToTransformerStore(TransformTypeName.PrependRpPrefix, fromConfig: true);
            GenerateArmResourceExtensions = generateArmResourceExtensions;
            RawParameterizedScopes = parameterizedScopes;
            OperationsToSkipLroApiVersionOverride = operationsToSkipLroApiVersionOverride;
            IsArmCore = Configuration.DeserializeBoolean(armCore, false);
            DoesResourceModelRequireType = Configuration.DeserializeBoolean(resourceModelRequiresType, true);
            DoesResourceModelRequireName = Configuration.DeserializeBoolean(resourceModelRequiresName, true);
            DoesSingletonRequiresKeyword = Configuration.DeserializeBoolean(singletonRequiresKeyword, false);
            OperationIdMappings = DeserializeDictionary<string, IReadOnlyDictionary<string, string>>(operationIdMappings);
            UpdateRequiredCopy = DeserializeDictionary<string, string>(updateRequiredCopy);
            PatchInitializerCustomization = DeserializeDictionary<string, IReadOnlyDictionary<string, string>>(patchInitializerCustomization);
            PrivilegedOperations = DeserializeDictionary<string, string>(privilegedOperations).AddToTransformerStore(Mgmt.Report.TransformTypeName.PrivilegedOperations, fromConfig: true);
            OperationsToLroApiVersionOverride = DeserializeDictionary<string, string>(operationsToLroApiVersionOverride);
        }