ABB.SrcML.SrcMLGenerator.CreateExtensionMappingForRunner C# (CSharp) Method

CreateExtensionMappingForRunner() private method

private CreateExtensionMappingForRunner ( ABB.SrcML.Src2SrcMLRunner2 runner ) : Language>.Dictionary
runner ABB.SrcML.Src2SrcMLRunner2
return Language>.Dictionary
        private Dictionary<string, Language> CreateExtensionMappingForRunner(Src2SrcMLRunner2 runner) {
            Dictionary<string, Language> extensionMapForRunner = new Dictionary<string, Language>(StringComparer.OrdinalIgnoreCase);
            IEnumerable<KeyValuePair<string, Language>> kvps = Enumerable.Empty<KeyValuePair<string,Language>>();
            if(runner == defaultExecutable) {
                kvps = from kvp in ExtensionMapping
                       where defaultLanguages.Contains(kvp.Value)
                       select kvp;
            } else if(nonDefaultExecutables.Values.Contains(runner)) {
                var registeredLanguages = (from kvp in nonDefaultExecutables
                                           where kvp.Value == runner
                                           select kvp.Key).ToList();
                kvps = from kvp in ExtensionMapping
                       where registeredLanguages.Contains(kvp.Value)
                       select kvp;
            }
            foreach(var kvp in kvps) {
                extensionMapForRunner[kvp.Key] = kvp.Value;
            }
            
            return extensionMapForRunner;
        }