From 3a6ee3a37c356c3711017b5bffc08e9c93e600fd Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 21 Apr 2026 10:59:45 -0400 Subject: [PATCH] Remove preemptive filtering --- .../DatFile.FromMetadata.cs | 109 +++++------------- SabreTools.Metadata.DatFiles/DatFile.cs | 3 - .../Formats/ClrMamePro.cs | 4 +- .../Formats/Hashfile.cs | 4 +- .../Formats/Listxml.cs | 4 +- .../Formats/Missfile.cs | 2 - .../Formats/SabreJSON.cs | 33 ++---- .../Formats/SabreXML.cs | 27 +---- .../Formats/SeparatedValue.cs | 4 +- .../Formats/SerializableDatFile.cs | 4 +- 10 files changed, 47 insertions(+), 147 deletions(-) diff --git a/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs b/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs index 3ef30659..93c598d5 100644 --- a/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs +++ b/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; #if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER using System.Threading.Tasks; #endif -using SabreTools.Metadata.Filter; using SabreTools.Metadata.DatItems; using SabreTools.Metadata.DatItems.Formats; using MergingFlag = SabreTools.Data.Models.Metadata.MergingFlag; @@ -26,13 +25,11 @@ namespace SabreTools.Metadata.DatFiles /// Index ID for the DAT /// True if full pathnames are to be kept, false otherwise /// True to only add item statistics while parsing, false otherwise - /// Optional FilterRunner to filter items on parse internal void ConvertFromMetadata(Data.Models.Metadata.MetadataFile? item, string filename, int indexId, bool keep, - bool statsOnly, - FilterRunner? filterRunner) + bool statsOnly) { // If the metadata file is invalid, we can't do anything if (item is null) @@ -50,7 +47,7 @@ namespace SabreTools.Metadata.DatFiles // Get the machines from the metadata var machines = item.Machine; if (machines is not null) - ConvertMachines(machines, source, sourceIndex: 0, statsOnly, filterRunner); + ConvertMachines(machines, source, sourceIndex: 0, statsOnly); } /// @@ -184,12 +181,10 @@ namespace SabreTools.Metadata.DatFiles /// Source to use with the converted items /// Index of the Source to use with the converted items /// True to only add item statistics while parsing, false otherwise - /// Optional FilterRunner to filter items on parse private void ConvertMachines(Data.Models.Metadata.Machine[]? items, Source source, long sourceIndex, - bool statsOnly, - FilterRunner? filterRunner) + bool statsOnly) { // If the array is invalid, we can't do anything if (items is null || items.Length == 0) @@ -202,7 +197,7 @@ namespace SabreTools.Metadata.DatFiles foreach (var machine in items) #endif { - ConvertMachine(machine, source, sourceIndex, statsOnly, filterRunner); + ConvertMachine(machine, source, sourceIndex, statsOnly); #if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER }); #else @@ -217,21 +212,15 @@ namespace SabreTools.Metadata.DatFiles /// Source to use with the converted items /// Index of the Source to use with the converted items /// True to only add item statistics while parsing, false otherwise - /// Optional FilterRunner to filter items on parse private void ConvertMachine(Data.Models.Metadata.Machine? item, Source source, long sourceIndex, - bool statsOnly, - FilterRunner? filterRunner) + bool statsOnly) { // If the machine is invalid, we can't do anything if (item is null) return; - // If the machine doesn't pass the filter - if (filterRunner is not null && !filterRunner.Run(item)) - return; - // Create an internal machine and add to the dictionary var machine = new Machine(item); long machineIndex = AddMachineDB(machine); @@ -240,8 +229,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Adjuster is not null) { var items = item.Adjuster; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Adjuster(item, machine, source) { @@ -257,8 +245,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Archive is not null) { var items = item.Archive; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Archive(item, machine, source) { @@ -274,8 +261,7 @@ namespace SabreTools.Metadata.DatFiles if (item.BiosSet is not null) { var items = item.BiosSet; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new BiosSet(item, machine, source) { @@ -291,8 +277,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Chip is not null) { var items = item.Chip; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Chip(item, machine, source) { @@ -308,8 +293,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Configuration is not null) { var items = item.Configuration; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Configuration(item, machine, source) { @@ -325,8 +309,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Device is not null) { var items = item.Device; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Device(item, machine, source) { @@ -359,8 +342,7 @@ namespace SabreTools.Metadata.DatFiles if (item.DipSwitch is not null) { var items = item.DipSwitch; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new DipSwitch(item, machine, source) { @@ -376,8 +358,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Disk is not null) { var items = item.Disk; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Disk(item, machine, source) { @@ -393,8 +374,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Display is not null) { var items = item.Display; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Display(item, machine, source) { @@ -407,7 +387,7 @@ namespace SabreTools.Metadata.DatFiles }); } - if (item.Driver is not null && filterRunner?.Run(item.Driver) != false) + if (item.Driver is not null) { var datItem = new Driver(item.Driver, machine, source) { @@ -452,8 +432,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Feature is not null) { var items = item.Feature; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Feature(item, machine, source) { @@ -469,8 +448,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Info is not null) { var items = item.Info; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Info(item, machine, source) { @@ -483,7 +461,7 @@ namespace SabreTools.Metadata.DatFiles }); } - if (item.Input is not null && filterRunner?.Run(item.Input) != false) + if (item.Input is not null) { var datItem = new Input(item.Input, machine, source) { @@ -498,8 +476,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Media is not null) { var items = item.Media; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Media(item, machine, source) { @@ -515,14 +492,13 @@ namespace SabreTools.Metadata.DatFiles if (item.Part is not null) { var items = item.Part; - ProcessItems(items, machine, machineIndex: 0, source, sourceIndex, statsOnly, filterRunner); + ProcessItems(items, machine, machineIndex: 0, source, sourceIndex, statsOnly); } if (item.Port is not null) { var items = item.Port; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Port(item, machine, source) { @@ -538,8 +514,7 @@ namespace SabreTools.Metadata.DatFiles if (item.RamOption is not null) { var items = item.RamOption; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new RamOption(item, machine, source) { @@ -555,8 +530,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Release is not null) { var items = item.Release; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Release(item, machine, source) { @@ -572,8 +546,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Rom is not null) { var items = item.Rom; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Rom(item, machine, source) { @@ -589,8 +562,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Sample is not null) { var items = item.Sample; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Sample(item, machine, source) { @@ -606,8 +578,7 @@ namespace SabreTools.Metadata.DatFiles if (item.SharedFeat is not null) { var items = item.SharedFeat; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new SharedFeat(item, machine, source) { @@ -640,8 +611,7 @@ namespace SabreTools.Metadata.DatFiles if (item.SoftwareList is not null) { var items = item.SoftwareList; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new SoftwareList(item, machine, source) { @@ -654,7 +624,7 @@ namespace SabreTools.Metadata.DatFiles }); } - if (item.Sound is not null && filterRunner?.Run(item.Sound) != false) + if (item.Sound is not null) { var datItem = new Sound(item.Sound, machine, source) { @@ -669,8 +639,7 @@ namespace SabreTools.Metadata.DatFiles if (item.Video is not null) { var items = item.Video; - var filtered = filterRunner is null ? items : Array.FindAll(items, i => filterRunner.Run(item)); - Array.ForEach(filtered, item => + Array.ForEach(items, item => { var datItem = new Display(item, machine, source) { @@ -693,14 +662,12 @@ namespace SabreTools.Metadata.DatFiles /// Source to use with the converted items /// Index of the Source to use with the converted items /// True to only add item statistics while parsing, false otherwise - /// Optional FilterRunner to filter items on parse private void ProcessItems(Data.Models.Metadata.Part[] items, Machine machine, long machineIndex, Source source, long sourceIndex, - bool statsOnly, - FilterRunner? filterRunner) + bool statsOnly) { // If the array is null or empty, return without processing if (items.Length == 0) @@ -723,10 +690,6 @@ namespace SabreTools.Metadata.DatFiles List addRoms = []; foreach (var rom in roms) { - // If the item doesn't pass the filter - if (filterRunner is not null && !filterRunner.Run(rom)) - continue; - // Convert the item var romItem = new Rom(rom, machine, source) { @@ -778,10 +741,6 @@ namespace SabreTools.Metadata.DatFiles foreach (var disk in disks) { - // If the item doesn't pass the filter - if (filterRunner is not null && !filterRunner.Run(disk)) - continue; - var diskItem = new Disk(disk, machine, source) { MachineIndex = machineIndex, @@ -802,10 +761,6 @@ namespace SabreTools.Metadata.DatFiles { foreach (var dipSwitch in dipSwitches) { - // If the item doesn't pass the filter - if (filterRunner is not null && !filterRunner.Run(dipSwitch)) - continue; - var dipSwitchItem = new DipSwitch(dipSwitch, machine, source) { MachineIndex = machineIndex, @@ -824,10 +779,6 @@ namespace SabreTools.Metadata.DatFiles { foreach (var partFeature in partFeatures) { - // If the item doesn't pass the filter - if (filterRunner is not null && !filterRunner.Run(partFeature)) - continue; - var partFeatureItem = new PartFeature(partFeature) { MachineIndex = machineIndex, diff --git a/SabreTools.Metadata.DatFiles/DatFile.cs b/SabreTools.Metadata.DatFiles/DatFile.cs index 1fd96da9..7885d33a 100644 --- a/SabreTools.Metadata.DatFiles/DatFile.cs +++ b/SabreTools.Metadata.DatFiles/DatFile.cs @@ -8,7 +8,6 @@ using SabreTools.Hashing; using SabreTools.Logging; using SabreTools.Metadata.DatItems; using SabreTools.Metadata.DatItems.Formats; -using SabreTools.Metadata.Filter; using SabreTools.Text.Compare; using SabreTools.Text.Extensions; @@ -436,13 +435,11 @@ namespace SabreTools.Metadata.DatFiles /// Index ID for the DAT /// True if full pathnames are to be kept, false otherwise /// True to only add item statistics while parsing, false otherwise - /// Optional FilterRunner to filter items on parse /// True if the error that is thrown should be thrown back to the caller, false otherwise public abstract void ParseFile(string filename, int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false); #endregion diff --git a/SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs b/SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs index 22f7d359..4d97268b 100644 --- a/SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs +++ b/SabreTools.Metadata.DatFiles/Formats/ClrMamePro.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using SabreTools.Metadata.DatItems; using SabreTools.Metadata.DatItems.Formats; -using SabreTools.Metadata.Filter; namespace SabreTools.Metadata.DatFiles.Formats { @@ -47,7 +46,6 @@ namespace SabreTools.Metadata.DatFiles.Formats int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false) { try @@ -57,7 +55,7 @@ namespace SabreTools.Metadata.DatFiles.Formats var metadata = new Serialization.CrossModel.ClrMamePro().Serialize(metadataFile); // Convert to the internal format - ConvertFromMetadata(metadata, filename, indexId, keep, statsOnly, filterRunner); + ConvertFromMetadata(metadata, filename, indexId, keep, statsOnly); } catch (Exception ex) when (!throwOnError) { diff --git a/SabreTools.Metadata.DatFiles/Formats/Hashfile.cs b/SabreTools.Metadata.DatFiles/Formats/Hashfile.cs index 0e986853..55dc5819 100644 --- a/SabreTools.Metadata.DatFiles/Formats/Hashfile.cs +++ b/SabreTools.Metadata.DatFiles/Formats/Hashfile.cs @@ -1,6 +1,5 @@ using System; using SabreTools.Hashing; -using SabreTools.Metadata.Filter; #pragma warning disable IDE0290 // Use primary constructor namespace SabreTools.Metadata.DatFiles.Formats @@ -31,7 +30,6 @@ namespace SabreTools.Metadata.DatFiles.Formats int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false) { try @@ -41,7 +39,7 @@ namespace SabreTools.Metadata.DatFiles.Formats var metadata = new Serialization.CrossModel.Hashfile().Serialize(hashfile); // Convert to the internal format - ConvertFromMetadata(metadata, filename, indexId, keep, statsOnly, filterRunner); + ConvertFromMetadata(metadata, filename, indexId, keep, statsOnly); } catch (Exception ex) when (!throwOnError) { diff --git a/SabreTools.Metadata.DatFiles/Formats/Listxml.cs b/SabreTools.Metadata.DatFiles/Formats/Listxml.cs index 8b9fb617..70caca46 100644 --- a/SabreTools.Metadata.DatFiles/Formats/Listxml.cs +++ b/SabreTools.Metadata.DatFiles/Formats/Listxml.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using SabreTools.Metadata.DatItems; using SabreTools.Metadata.DatItems.Formats; -using SabreTools.Metadata.Filter; namespace SabreTools.Metadata.DatFiles.Formats { @@ -223,7 +222,6 @@ namespace SabreTools.Metadata.DatFiles.Formats int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false) { try @@ -242,7 +240,7 @@ namespace SabreTools.Metadata.DatFiles.Formats } // Convert to the internal format - ConvertFromMetadata(metadata, filename, indexId, keep, statsOnly, filterRunner); + ConvertFromMetadata(metadata, filename, indexId, keep, statsOnly); } catch (Exception ex) when (!throwOnError) { diff --git a/SabreTools.Metadata.DatFiles/Formats/Missfile.cs b/SabreTools.Metadata.DatFiles/Formats/Missfile.cs index 95e799e4..00d59dd2 100644 --- a/SabreTools.Metadata.DatFiles/Formats/Missfile.cs +++ b/SabreTools.Metadata.DatFiles/Formats/Missfile.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.IO; using System.Text; using SabreTools.Metadata.DatItems; -using SabreTools.Metadata.Filter; namespace SabreTools.Metadata.DatFiles.Formats { @@ -31,7 +30,6 @@ namespace SabreTools.Metadata.DatFiles.Formats int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false) { throw new NotImplementedException(); diff --git a/SabreTools.Metadata.DatFiles/Formats/SabreJSON.cs b/SabreTools.Metadata.DatFiles/Formats/SabreJSON.cs index 08548456..6e2cf96d 100644 --- a/SabreTools.Metadata.DatFiles/Formats/SabreJSON.cs +++ b/SabreTools.Metadata.DatFiles/Formats/SabreJSON.cs @@ -9,7 +9,6 @@ using Newtonsoft.Json.Serialization; using SabreTools.Data.Extensions; using SabreTools.Metadata.DatItems; using SabreTools.Metadata.DatItems.Formats; -using SabreTools.Metadata.Filter; namespace SabreTools.Metadata.DatFiles.Formats { @@ -41,7 +40,6 @@ namespace SabreTools.Metadata.DatFiles.Formats int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false) { // Prepare all internal variables @@ -78,7 +76,7 @@ namespace SabreTools.Metadata.DatFiles.Formats // Machine array case "machines": - ReadMachines(jtr, statsOnly, source, sourceIndex: 0, filterRunner); + ReadMachines(jtr, statsOnly, source, sourceIndex: 0); jtr.Read(); break; @@ -120,8 +118,7 @@ namespace SabreTools.Metadata.DatFiles.Formats /// True to only add item statistics while parsing, false otherwise /// Source representing the DAT /// Index of the Source representing the DAT - /// Optional FilterRunner to filter items on parse - private void ReadMachines(JsonTextReader jtr, bool statsOnly, Source source, long sourceIndex, FilterRunner? filterRunner) + private void ReadMachines(JsonTextReader jtr, bool statsOnly, Source source, long sourceIndex) { // If the reader is invalid, skip if (jtr is null) @@ -135,7 +132,7 @@ namespace SabreTools.Metadata.DatFiles.Formats // Loop through each machine object and process foreach (JObject machineObj in machineArray.Cast()) { - ReadMachine(machineObj, statsOnly, source, sourceIndex, filterRunner); + ReadMachine(machineObj, statsOnly, source, sourceIndex); } } @@ -146,8 +143,7 @@ namespace SabreTools.Metadata.DatFiles.Formats /// True to only add item statistics while parsing, false otherwise /// Source representing the DAT /// Index of the Source representing the DAT - /// Optional FilterRunner to filter items on parse - private void ReadMachine(JObject machineObj, bool statsOnly, Source source, long sourceIndex, FilterRunner? filterRunner) + private void ReadMachine(JObject machineObj, bool statsOnly, Source source, long sourceIndex) { // If object is invalid, skip it if (machineObj is null) @@ -160,10 +156,6 @@ namespace SabreTools.Metadata.DatFiles.Formats if (machineObj.ContainsKey("machine")) machine = machineObj["machine"]?.ToObject(); - // If the machine doesn't pass the filter - if (machine is not null && filterRunner is not null && !machine.PassesFilter(filterRunner)) - return; - // Add the machine to the dictionary // long machineIndex = -1; // if (machine is not null) @@ -177,8 +169,7 @@ namespace SabreTools.Metadata.DatFiles.Formats source, sourceIndex, machine, - machineIndex: 0, - filterRunner); + machineIndex: 0); } } @@ -191,7 +182,6 @@ namespace SabreTools.Metadata.DatFiles.Formats /// Index of the Source representing the DAT /// Machine information to add to the parsed items /// Index of the Machine to add to the parsed items - /// Optional FilterRunner to filter items on parse private void ReadItems( JArray? itemsArr, bool statsOnly, @@ -202,8 +192,7 @@ namespace SabreTools.Metadata.DatFiles.Formats // Miscellaneous Machine? machine, - long machineIndex, - FilterRunner? filterRunner) + long machineIndex) { // If the array is invalid, skip if (itemsArr is null) @@ -212,7 +201,7 @@ namespace SabreTools.Metadata.DatFiles.Formats // Loop through each datitem object and process foreach (JObject itemObj in itemsArr.Cast()) { - ReadItem(itemObj, statsOnly, source, sourceIndex, machine, machineIndex, filterRunner); + ReadItem(itemObj, statsOnly, source, sourceIndex, machine, machineIndex); } } @@ -225,7 +214,6 @@ namespace SabreTools.Metadata.DatFiles.Formats /// Index of the Source representing the DAT /// Machine information to add to the parsed items /// Index of the Machine to add to the parsed items - /// Optional FilterRunner to filter items on parse private void ReadItem( JObject itemObj, bool statsOnly, @@ -236,8 +224,7 @@ namespace SabreTools.Metadata.DatFiles.Formats // Miscellaneous Machine? machine, - long machineIndex, - FilterRunner? filterRunner) + long machineIndex) { // If we have an empty item, skip it if (itemObj is null) @@ -386,10 +373,6 @@ namespace SabreTools.Metadata.DatFiles.Formats // If we got a valid datitem, copy machine info and add if (datItem is not null) { - // If the item doesn't pass the filter - if (filterRunner is not null && !datItem.PassesFilter(filterRunner)) - return; - datItem.CopyMachineInformation(machine); datItem.MachineIndex = machineIndex; datItem.Source = source; diff --git a/SabreTools.Metadata.DatFiles/Formats/SabreXML.cs b/SabreTools.Metadata.DatFiles/Formats/SabreXML.cs index 4f65296a..8077635f 100644 --- a/SabreTools.Metadata.DatFiles/Formats/SabreXML.cs +++ b/SabreTools.Metadata.DatFiles/Formats/SabreXML.cs @@ -6,7 +6,6 @@ using System.Xml; using System.Xml.Schema; using System.Xml.Serialization; using SabreTools.Metadata.DatItems; -using SabreTools.Metadata.Filter; #pragma warning disable IDE0060 // Remove unused parameter namespace SabreTools.Metadata.DatFiles.Formats @@ -39,7 +38,6 @@ namespace SabreTools.Metadata.DatFiles.Formats int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false) { // Prepare all internal variables @@ -84,7 +82,7 @@ namespace SabreTools.Metadata.DatFiles.Formats break; case "directory": - ReadDirectory(xtr.ReadSubtree(), statsOnly, source, sourceIndex, filterRunner); + ReadDirectory(xtr.ReadSubtree(), statsOnly, source, sourceIndex); // Skip the directory node now that we've processed it xtr.Read(); @@ -115,12 +113,10 @@ namespace SabreTools.Metadata.DatFiles.Formats /// True to only add item statistics while parsing, false otherwise /// Source representing the DAT /// Index of the Source representing the DAT - /// Optional FilterRunner to filter items on parse private void ReadDirectory(XmlReader xtr, bool statsOnly, Source source, - long sourceIndex, - FilterRunner? filterRunner) + long sourceIndex) { // If the reader is invalid, skip if (xtr is null) @@ -146,11 +142,6 @@ namespace SabreTools.Metadata.DatFiles.Formats case "machine": XmlSerializer xs = new(typeof(Machine)); machine = xs?.Deserialize(xtr.ReadSubtree()) as Machine; - - // If the machine doesn't pass the filter - if (machine is not null && filterRunner is not null && !machine.PassesFilter(filterRunner)) - machine = null; - if (machine is not null) machineIndex = AddMachineDB(machine); @@ -163,8 +154,7 @@ namespace SabreTools.Metadata.DatFiles.Formats machineIndex, statsOnly, source, - sourceIndex, - filterRunner); + sourceIndex); // Skip the directory node now that we've processed it xtr.Read(); @@ -185,14 +175,12 @@ namespace SabreTools.Metadata.DatFiles.Formats /// True to only add item statistics while parsing, false otherwise /// Source representing the DAT /// Index of the Source representing the DAT - /// Optional FilterRunner to filter items on parse private void ReadFiles(XmlReader xtr, Machine? machine, long machineIndex, bool statsOnly, Source source, - long sourceIndex, - FilterRunner? filterRunner) + long sourceIndex) { // If the reader is invalid, skip if (xtr is null) @@ -215,13 +203,6 @@ namespace SabreTools.Metadata.DatFiles.Formats XmlSerializer xs = new(typeof(DatItem)); if (xs.Deserialize(xtr.ReadSubtree()) is DatItem item) { - // If the item doesn't pass the filter - if (filterRunner is not null && !item.PassesFilter(filterRunner)) - { - xtr.Skip(); - break; - } - item.CopyMachineInformation(machine); item.MachineIndex = machineIndex; item.Source = source; diff --git a/SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs b/SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs index 9fde320b..60dcb468 100644 --- a/SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs +++ b/SabreTools.Metadata.DatFiles/Formats/SeparatedValue.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using SabreTools.Metadata.DatItems; using SabreTools.Metadata.DatItems.Formats; -using SabreTools.Metadata.Filter; #pragma warning disable IDE0290 // Use primary constructor namespace SabreTools.Metadata.DatFiles.Formats @@ -42,7 +41,6 @@ namespace SabreTools.Metadata.DatFiles.Formats int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false) { try @@ -52,7 +50,7 @@ namespace SabreTools.Metadata.DatFiles.Formats var metadata = new Serialization.CrossModel.SeparatedValue().Serialize(metadataFile); // Convert to the internal format - ConvertFromMetadata(metadata, filename, indexId, keep, statsOnly, filterRunner); + ConvertFromMetadata(metadata, filename, indexId, keep, statsOnly); } catch (Exception ex) when (!throwOnError) { diff --git a/SabreTools.Metadata.DatFiles/Formats/SerializableDatFile.cs b/SabreTools.Metadata.DatFiles/Formats/SerializableDatFile.cs index 8dca3e2c..09835bee 100644 --- a/SabreTools.Metadata.DatFiles/Formats/SerializableDatFile.cs +++ b/SabreTools.Metadata.DatFiles/Formats/SerializableDatFile.cs @@ -1,6 +1,5 @@ using System; using SabreTools.Data.Models.Metadata; -using SabreTools.Metadata.Filter; using SabreTools.Serialization.CrossModel; using SabreTools.Serialization.Readers; using SabreTools.Serialization.Writers; @@ -47,7 +46,6 @@ namespace SabreTools.Metadata.DatFiles.Formats int indexId, bool keep, bool statsOnly = false, - FilterRunner? filterRunner = null, bool throwOnError = false) { try @@ -57,7 +55,7 @@ namespace SabreTools.Metadata.DatFiles.Formats var internalFormat = CrossModelSerializer.Serialize(specificFormat); // Convert to the internal format - ConvertFromMetadata(internalFormat, filename, indexId, keep, statsOnly, filterRunner); + ConvertFromMetadata(internalFormat, filename, indexId, keep, statsOnly); } catch (Exception ex) when (!throwOnError) {