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

GenerateSrcMLFromFiles() public method

public GenerateSrcMLFromFiles ( IEnumerable sourceFileNames, string xmlFileName ) : void
sourceFileNames IEnumerable
xmlFileName string
return void
        public void GenerateSrcMLFromFiles(IEnumerable<string> sourceFileNames, string xmlFileName) {
            var filesByLanguage = new Dictionary<Language, List<string>>();
            //determine which runner should process each source file
            foreach(var sourceFile in sourceFileNames) {
                var ext = Path.GetExtension(sourceFile);
                if(ext != null && extensionMapping.ContainsKey(ext)) {
                    Language lang = extensionMapping[ext];
                    if(nonDefaultExecutables.ContainsKey(lang)) {
                        //this file should be parsed by a non-default runner
                        if(!filesByLanguage.ContainsKey(lang)) {
                            filesByLanguage[lang] = new List<string>() { sourceFile };
                        } else {
                            filesByLanguage[lang].Add(sourceFile);
                        }
                    } else {
                        //should be parsed by the default runner
                        if(!filesByLanguage.ContainsKey(Language.Any)) {
                            filesByLanguage[Language.Any] = new List<string>() { sourceFile };
                        } else {
                            filesByLanguage[Language.Any].Add(sourceFile);
                        }
                    }
                }
            }

            //convert files to srcml
            SrcMLFile tempArchive = null;
            foreach(var kvp in filesByLanguage) {
                var tempOutputFile = Path.GetTempFileName();
                SrcMLFile tempResult;
                if(kvp.Key == Language.Any) {
                    var mapForRunner = CreateExtensionMappingForRunner(defaultExecutable);
                    defaultExecutable.GenerateSrcMLFromFiles(kvp.Value, tempOutputFile, Language.Any, new Collection<string>(defaultArguments.ToList()), mapForRunner);
                } else {
                    var runner = nonDefaultExecutables[kvp.Key];
                    var mapForRunner = CreateExtensionMappingForRunner(runner);
                    runner.GenerateSrcMLFromFiles(kvp.Value, tempOutputFile, kvp.Key, new Collection<string>(nonDefaultArguments[kvp.Key].ToList()), mapForRunner);
                }
                tempResult = new SrcMLFile(tempOutputFile);
                var oldArchiveFile = tempArchive != null ? tempArchive.FileName : null;
                tempArchive = tempResult.Merge(tempArchive, Path.GetTempFileName());
                File.Delete(tempOutputFile);
                if(oldArchiveFile != null) { File.Delete(oldArchiveFile); }
            }

            if(tempArchive != null) {
                if(File.Exists(xmlFileName)) {
                    File.Delete(xmlFileName);
                }
                File.Move(tempArchive.FileName, xmlFileName);
            }
        }
        /// <summary>

Same methods

SrcMLGenerator::GenerateSrcMLFromFiles ( IEnumerable sourceFileNames, string xmlFileName, System.Language language ) : void