DatItems don't know about filtering

This commit is contained in:
Matt Nadareski
2020-12-13 21:47:42 -08:00
parent 67bfe0dae9
commit 3fcec263e0
40 changed files with 1325 additions and 1458 deletions

View File

@@ -8,7 +8,6 @@ using System.Xml.Serialization;
using SabreTools.Core;
using SabreTools.Core.Tools;
using SabreTools.FileTypes;
using SabreTools.Filtering;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
@@ -798,162 +797,6 @@ namespace SabreTools.DatItems
#region Filtering
/// <inheritdoc/>
public override bool PassesFilter(Cleaner cleaner, bool sub = false)
{
// Check common fields first
if (!base.PassesFilter(cleaner, sub))
return false;
#region Common
// Filter on item name
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Name, Name))
return false;
// Filter on bios
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Bios, Bios))
return false;
// Filter on rom size
if (!Filter.PassLongFilter(cleaner.DatItemFilter.Size, Size))
return false;
// Filter on CRC
if (!Filter.PassStringFilter(cleaner.DatItemFilter.CRC, CRC))
return false;
// Filter on MD5
if (!Filter.PassStringFilter(cleaner.DatItemFilter.MD5, MD5))
return false;
#if NET_FRAMEWORK
// Filter on RIPEMD160
if (!Filter.PassStringFilter(cleaner.DatItemFilter.RIPEMD160, RIPEMD160))
return false;
#endif
// Filter on SHA-1
if (!Filter.PassStringFilter(cleaner.DatItemFilter.SHA1, SHA1))
return false;
// Filter on SHA-256
if (!Filter.PassStringFilter(cleaner.DatItemFilter.SHA256, SHA256))
return false;
// Filter on SHA-384
if (!Filter.PassStringFilter(cleaner.DatItemFilter.SHA384, SHA384))
return false;
// Filter on SHA-512
if (!Filter.PassStringFilter(cleaner.DatItemFilter.SHA512, SHA512))
return false;
// Filter on SpamSum
if (!Filter.PassStringFilter(cleaner.DatItemFilter.SpamSum, SpamSum))
return false;
// Filter on merge tag
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Merge, MergeTag))
return false;
// Filter on region
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Region, Region))
return false;
// Filter on offset
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Offset, Offset))
return false;
// Filter on date
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Date, Date))
return false;
// Filter on status
if (cleaner.DatItemFilter.Status.MatchesPositive(ItemStatus.NULL, ItemStatus) == false)
return false;
if (cleaner.DatItemFilter.Status.MatchesNegative(ItemStatus.NULL, ItemStatus) == true)
return false;
// Filter on optional
if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Optional, Optional))
return false;
// Filter on inverted
if (!Filter.PassBoolFilter(cleaner.DatItemFilter.Inverted, Inverted))
return false;
#endregion
#region AttractMode
// Filter on alt name
if (!Filter.PassStringFilter(cleaner.DatItemFilter.AltName, AltName))
return false;
// Filter on alt title
if (!Filter.PassStringFilter(cleaner.DatItemFilter.AltTitle, AltTitle))
return false;
#endregion
#region OpenMSX
// Filter on original
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Original, Original?.Content))
return false;
// Filter on OpenMSX subtype
if (cleaner.DatItemFilter.OpenMSXSubType.MatchesPositive(OpenMSXSubType.NULL, OpenMSXSubType) == false)
return false;
if (cleaner.DatItemFilter.OpenMSXSubType.MatchesNegative(OpenMSXSubType.NULL, OpenMSXSubType) == true)
return false;
// Filter on OpenMSX type
if (!Filter.PassStringFilter(cleaner.DatItemFilter.OpenMSXType, OpenMSXType))
return false;
// Filter on remark
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Remark, Remark))
return false;
// Filter on boot
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Boot, Boot))
return false;
#endregion
#region SoftwareList
// Filter on load flag
if (cleaner.DatItemFilter.LoadFlag.MatchesPositive(LoadFlag.NULL, LoadFlag) == false)
return false;
if (cleaner.DatItemFilter.LoadFlag.MatchesNegative(LoadFlag.NULL, LoadFlag) == true)
return false;
// Filter on value
if (!Filter.PassStringFilter(cleaner.DatItemFilter.Value, Value))
return false;
// Filter on DataArea
if (DataAreaSpecified)
{
if (!DataArea.PassesFilter(cleaner, true))
return false;
}
// Filter on Part
if (PartSpecified)
{
if (!Part.PassesFilter(cleaner, true))
return false;
}
#endregion
return true;
}
/// <inheritdoc/>
public override void RemoveFields(
List<DatItemField> datItemFields,