Implement simple filters

This commit is contained in:
Matt Nadareski
2024-03-05 02:56:50 -05:00
parent 05900cf818
commit 5e3e485d14
3 changed files with 22 additions and 0 deletions

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
using System.Xml.Serialization; using System.Xml.Serialization;
using Newtonsoft.Json; using Newtonsoft.Json;
using SabreTools.Core; using SabreTools.Core;

View File

@@ -7,6 +7,7 @@ using SabreTools.Core;
using SabreTools.Core.Tools; using SabreTools.Core.Tools;
using SabreTools.DatItems.Formats; using SabreTools.DatItems.Formats;
using SabreTools.FileTypes; using SabreTools.FileTypes;
using SabreTools.Filter;
using SabreTools.Logging; using SabreTools.Logging;
using SabreTools.Matching; using SabreTools.Matching;
@@ -375,6 +376,19 @@ namespace SabreTools.DatItems
// TODO: These should be item-specific for better filtering // TODO: These should be item-specific for better filtering
#region Manipulation #region Manipulation
/// <summary>
/// Runs a filter and determines if it passes or not
/// </summary>
/// <param name="filterRunner">Filter runner to use for checking</param>
/// <returns>True if the item passes the filter, false otherwise</returns>
public bool PassesFilter(FilterRunner filterRunner)
{
if (!Machine.PassesFilter(filterRunner))
return false;
return filterRunner.Run(_internal);
}
/// <summary> /// <summary>
/// Remove a field from the DatItem /// Remove a field from the DatItem
/// </summary> /// </summary>

View File

@@ -542,6 +542,13 @@ namespace SabreTools.DatItems
#region Manipulation #region Manipulation
/// <summary>
/// Runs a filter and determines if it passes or not
/// </summary>
/// <param name="filterRunner">Filter runner to use for checking</param>
/// <returns>True if the Machine passes the filter, false otherwise</returns>
public bool PassesFilter(FilterRunner filterRunner) => filterRunner.Run(_machine);
/// <summary> /// <summary>
/// Remove a field from the Machine /// Remove a field from the Machine
/// </summary> /// </summary>