diff --git a/SabreTools.DatFiles/Parser.cs b/SabreTools.DatFiles/Parser.cs index 0d8c61ee..7152bfcf 100644 --- a/SabreTools.DatFiles/Parser.cs +++ b/SabreTools.DatFiles/Parser.cs @@ -23,23 +23,6 @@ namespace SabreTools.DatFiles #endregion - /// - /// Create a DatFile and parse a file into it - /// - /// Name of the file to be parsed - /// True to only add item statistics while parsing, false otherwise - /// True if the error that is thrown should be thrown back to the caller, false otherwise - public static DatFile CreateAndParse(string? filename, bool statsOnly = false, bool throwOnError = false) - { - // Null filenames are invalid - if (filename == null) - return DatFileTool.CreateDatFile(); - - DatFile datFile = DatFileTool.CreateDatFile(); - ParseInto(datFile, new ParentablePath(filename), statsOnly: statsOnly, throwOnError: throwOnError); - return datFile; - } - /// /// Parse a DAT and return all found games and roms within /// @@ -119,6 +102,22 @@ namespace SabreTools.DatFiles watch.Stop(); } + /// + /// Create a DatFile and parse statistics into it + /// + /// Name of the file to be parsed + /// True if the error that is thrown should be thrown back to the caller, false otherwise + public static DatFile ParseStatistics(string? filename, bool throwOnError = false) + { + // Null filenames are invalid + if (filename == null) + return DatFileTool.CreateDatFile(); + + DatFile datFile = DatFileTool.CreateDatFile(); + ParseInto(datFile, new ParentablePath(filename), statsOnly: true, throwOnError: throwOnError); + return datFile; + } + /// /// Get what type of DAT the input file is /// diff --git a/SabreTools.DatTools/Statistics.cs b/SabreTools.DatTools/Statistics.cs index caaa8189..01ee447d 100644 --- a/SabreTools.DatTools/Statistics.cs +++ b/SabreTools.DatTools/Statistics.cs @@ -76,7 +76,7 @@ namespace SabreTools.DatTools InternalStopwatch watch = new($"Collecting statistics for '{file.CurrentPath}'"); List machines = []; - DatFile datdata = Parser.CreateAndParse(file.CurrentPath, statsOnly: true, throwOnError: throwOnError); + DatFile datdata = Parser.ParseStatistics(file.CurrentPath, throwOnError: throwOnError); // Add single DAT stats (if asked) if (single) diff --git a/SabreTools.Test/DatTools/ParserTests.cs b/SabreTools.Test/DatTools/ParserTests.cs index 5fc602d4..a0d302d7 100644 --- a/SabreTools.Test/DatTools/ParserTests.cs +++ b/SabreTools.Test/DatTools/ParserTests.cs @@ -37,13 +37,13 @@ namespace SabreTools.Test.DatTools [InlineData("test-sha384.sha384", DatFormat.RedumpSHA384, 1)] [InlineData("test-sha512.sha512", DatFormat.RedumpSHA512, 1)] [InlineData("test-spamsum.spamsum", DatFormat.RedumpSpamSum, 1)] - public void CreateAndParseTest(string? filename, DatFormat datFormat, int totalCount) + public void ParseStatisticsTest(string? filename, DatFormat datFormat, int totalCount) { // For all filenames, add the local path for test data if (filename != null) filename = Path.Combine(Environment.CurrentDirectory, "TestData", filename); - var datFile = Parser.CreateAndParse(filename, throwOnError: true); + var datFile = Parser.ParseStatistics(filename, throwOnError: true); Assert.Equal(datFormat, datFile.Header.GetFieldValue(DatHeader.DatFormatKey)); Assert.Equal(totalCount, datFile.Items.DatStatistics.TotalCount); Assert.Equal(totalCount, datFile.ItemsDB.DatStatistics.TotalCount);