Move SabreTools.Filter to SabreTools.Core.Filter

This commit is contained in:
Matt Nadareski
2024-03-12 22:52:36 -04:00
parent 7007cdb5ac
commit c3fe04df2d
22 changed files with 34 additions and 78 deletions

View File

@@ -3,7 +3,7 @@ using System.Linq;
using System.Text.RegularExpressions;
using SabreTools.Models.Metadata;
namespace SabreTools.Filter
namespace SabreTools.Core.Filter
{
public static class FieldManipulator
{

View File

@@ -3,7 +3,7 @@ using System.Text.RegularExpressions;
using SabreTools.Core.Tools;
using SabreTools.Models.Metadata;
namespace SabreTools.Filter
namespace SabreTools.Core.Filter
{
/// <summary>
/// Represents a single filtering object

View File

@@ -2,7 +2,7 @@
using System.Linq;
using SabreTools.Models.Metadata;
namespace SabreTools.Filter
namespace SabreTools.Core.Filter
{
public static class FilterParser
{

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using SabreTools.Models.Metadata;
namespace SabreTools.Filter
namespace SabreTools.Core.Filter
{
/// <summary>
/// Represents a set of filters that can be run against an object

View File

@@ -1,4 +1,4 @@
namespace SabreTools.Filter
namespace SabreTools.Core.Filter
{
/// <summary>
/// Determines what operation is being done

View File

@@ -5,7 +5,7 @@ using System.Xml.Serialization;
using SabreTools.Models;
using SabreTools.Models.Metadata;
namespace SabreTools.Filter
namespace SabreTools.Core.Filter
{
public static class TypeHelper
{

View File

@@ -8,11 +8,11 @@ using System.Threading.Tasks;
using System.Xml.Serialization;
using Newtonsoft.Json;
using SabreTools.Core;
using SabreTools.Core.Filter;
using SabreTools.Core.Tools;
using SabreTools.DatFiles.Formats;
using SabreTools.DatItems;
using SabreTools.DatItems.Formats;
using SabreTools.Filter;
using SabreTools.Hashing;
using SabreTools.Logging;
using SabreTools.Serialization.Interfaces;

View File

@@ -4,9 +4,9 @@ using System.IO;
using System.Xml.Serialization;
using Newtonsoft.Json;
using SabreTools.Core;
using SabreTools.Core.Filter;
using SabreTools.Core.Tools;
using SabreTools.DatFiles.Formats;
using SabreTools.Filter;
namespace SabreTools.DatFiles
{

View File

@@ -1,10 +1,10 @@
using System.Collections.Generic;
using System.Linq;
using SabreTools.Core;
using SabreTools.Core.Filter;
using SabreTools.Core.Tools;
using SabreTools.DatItems;
using SabreTools.DatItems.Formats;
using SabreTools.Filter;
using SabreTools.Logging;
namespace SabreTools.DatFiles

View File

@@ -5,10 +5,10 @@ using System.Reflection;
using System.Xml.Serialization;
using Newtonsoft.Json;
using SabreTools.Core;
using SabreTools.Core.Filter;
using SabreTools.Core.Tools;
using SabreTools.DatItems.Formats;
using SabreTools.FileTypes;
using SabreTools.Filter;
using SabreTools.Hashing;
using SabreTools.Logging;
using SabreTools.Matching;

View File

@@ -2,7 +2,7 @@
using System.Xml.Serialization;
using Newtonsoft.Json;
using SabreTools.Core;
using SabreTools.Filter;
using SabreTools.Core.Filter;
namespace SabreTools.DatItems
{

View File

@@ -23,7 +23,6 @@
<ItemGroup>
<ProjectReference Include="..\SabreTools.Core\SabreTools.Core.csproj" />
<ProjectReference Include="..\SabreTools.FileTypes\SabreTools.FileTypes.csproj" />
<ProjectReference Include="..\SabreTools.Filter\SabreTools.Filter.csproj" />
<ProjectReference Include="..\SabreTools.Logging\SabreTools.Logging.csproj" />
</ItemGroup>

View File

@@ -1,3 +0,0 @@
# SabreTools.Filter
This library contains classes and helpers revolving around filtering and field manipulation. These methods are centered around the internal models that are defined in `SabreTools.Models`. Most of these methods also involve reflection, so it is unlikely that this will be a candidate for NativeAOT.

View File

@@ -1,31 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- Assembly Properties -->
<TargetFrameworks>net20;net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0</TargetFrameworks>
<RuntimeIdentifiers>win-x86;win-x64;win-arm64;linux-x64;linux-arm64;osx-x64</RuntimeIdentifiers>
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Version>1.1.2</Version>
<!-- Package Properties -->
<Authors>Matt Nadareski</Authors>
<Copyright>Copyright (c)2016-2024 Matt Nadareski</Copyright>
<PackageProjectUrl>https://github.com/SabreTools/</PackageProjectUrl>
<RepositoryUrl>https://github.com/SabreTools/SabreTools</RepositoryUrl>
<RepositoryType>git</RepositoryType>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\SabreTools.Core\SabreTools.Core.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="SabreTools.Models" Version="1.4.0" />
</ItemGroup>
</Project>

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SabreTools.Core.Filter;
using SabreTools.DatFiles;
using SabreTools.DatItems;
using SabreTools.Logging;
@@ -68,7 +69,7 @@ namespace SabreTools.Filtering
string fieldString = inputTrimmed.Split(':')[0].ToLowerInvariant().Trim('"', ' ', '\t');
string fileString = inputTrimmed.Substring(fieldString.Length + 1).Trim('"', ' ', '\t');
item.FieldName = SabreTools.Filter.FilterParser.ParseFilterId(fieldString);
item.FieldName = FilterParser.ParseFilterId(fieldString);
if (item.PopulateFromFile(fileString))
Items.Add(item);
}

View File

@@ -4,11 +4,11 @@ using System.Linq;
using System.Threading.Tasks;
#endif
using SabreTools.Core;
using SabreTools.Core.Filter;
using SabreTools.Core.Tools;
using SabreTools.DatFiles;
using SabreTools.DatItems;
using SabreTools.DatItems.Formats;
using SabreTools.Filter;
using SabreTools.Logging;
namespace SabreTools.Filtering

View File

@@ -24,7 +24,6 @@
<ProjectReference Include="..\SabreTools.Core\SabreTools.Core.csproj" />
<ProjectReference Include="..\SabreTools.DatFiles\SabreTools.DatFiles.csproj" />
<ProjectReference Include="..\SabreTools.DatItems\SabreTools.DatItems.csproj" />
<ProjectReference Include="..\SabreTools.Filter\SabreTools.Filter.csproj" />
<ProjectReference Include="..\SabreTools.Logging\SabreTools.Logging.csproj" />
</ItemGroup>

View File

@@ -1,6 +1,6 @@
using SabreTools.Core.Filter;
using SabreTools.DatItems;
using SabreTools.DatItems.Formats;
using SabreTools.Filter;
using Xunit;
namespace SabreTools.Test.Filter

View File

@@ -1,5 +1,5 @@
using System;
using SabreTools.Filter;
using SabreTools.Core.Filter;
using Xunit;
namespace SabreTools.Test.Filter

View File

@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30128.74
# Visual Studio Version 17
VisualStudioVersion = 17.9.34607.119
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.DatFiles", "SabreTools.DatFiles\SabreTools.DatFiles.csproj", "{CA54EDF8-100F-46E7-933C-0E081C7FCBD3}"
EndProject
@@ -18,23 +18,21 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Core", "SabreTools.Core\SabreTools.Core.csproj", "{66E2FB10-77C0-4589-9DCD-3CA48702C18A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Help", "SabreTools.Help\SabreTools.Help.csproj", "{55364167-844F-4B58-8280-F5327FA3D8E7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Help", "SabreTools.Help\SabreTools.Help.csproj", "{55364167-844F-4B58-8280-F5327FA3D8E7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Logging", "SabreTools.Logging\SabreTools.Logging.csproj", "{3D54D896-19F0-4723-B1E3-E40FAFE5A078}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Logging", "SabreTools.Logging\SabreTools.Logging.csproj", "{3D54D896-19F0-4723-B1E3-E40FAFE5A078}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Filtering", "SabreTools.Filtering\SabreTools.Filtering.csproj", "{35129634-0F13-416A-8D4D-35B71DFECFFD}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Filtering", "SabreTools.Filtering\SabreTools.Filtering.csproj", "{35129634-0F13-416A-8D4D-35B71DFECFFD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.FileTypes", "SabreTools.FileTypes\SabreTools.FileTypes.csproj", "{0B36F39B-69CB-4E8A-B251-D063CB08B247}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.FileTypes", "SabreTools.FileTypes\SabreTools.FileTypes.csproj", "{0B36F39B-69CB-4E8A-B251-D063CB08B247}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.DatItems", "SabreTools.DatItems\SabreTools.DatItems.csproj", "{90ADE461-33B1-4E0D-925F-C99913665F0C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.DatItems", "SabreTools.DatItems\SabreTools.DatItems.csproj", "{90ADE461-33B1-4E0D-925F-C99913665F0C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.DatTools", "SabreTools.DatTools\SabreTools.DatTools.csproj", "{E0D12252-BBF3-4E3C-B2E2-79FA49EE31E5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.DatTools", "SabreTools.DatTools\SabreTools.DatTools.csproj", "{E0D12252-BBF3-4E3C-B2E2-79FA49EE31E5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Reports", "SabreTools.Reports\SabreTools.Reports.csproj", "{8B3F0606-0C2F-4004-9CB6-4F1F2497DCE4}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Reports", "SabreTools.Reports\SabreTools.Reports.csproj", "{8B3F0606-0C2F-4004-9CB6-4F1F2497DCE4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Test", "SabreTools.Test\SabreTools.Test.csproj", "{5B4E67D5-F4DA-4750-8FE2-04D08E343791}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SabreTools.Filter", "SabreTools.Filter\SabreTools.Filter.csproj", "{2A7A27A9-5FB9-4F6D-88F3-67120668A029}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SabreTools.Test", "SabreTools.Test\SabreTools.Test.csproj", "{5B4E67D5-F4DA-4750-8FE2-04D08E343791}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -140,14 +138,6 @@ Global
{5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|Any CPU.Build.0 = Release|Any CPU
{5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|x64.ActiveCfg = Release|Any CPU
{5B4E67D5-F4DA-4750-8FE2-04D08E343791}.Release|x64.Build.0 = Release|Any CPU
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Debug|x64.ActiveCfg = Debug|Any CPU
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Debug|x64.Build.0 = Debug|Any CPU
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Release|Any CPU.Build.0 = Release|Any CPU
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Release|x64.ActiveCfg = Release|Any CPU
{2A7A27A9-5FB9-4F6D-88F3-67120668A029}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.IO;
using Microsoft.Data.Sqlite;
using SabreTools.Core;
using SabreTools.Core.Filter;
using SabreTools.Core.Tools;
using SabreTools.DatFiles;
using SabreTools.DatTools;
@@ -1783,7 +1784,7 @@ Some special strings that can be used:
/// <summary>
/// Preonfigured FilterRunner
/// </summary>
protected Filter.FilterRunner? FilterRunner { get; set; }
protected FilterRunner? FilterRunner { get; set; }
/// <summary>
/// Pre-configured DatHeader
@@ -2046,7 +2047,7 @@ Some special strings that can be used:
List<string> updateFields = [];
foreach (string fieldName in GetList(features, UpdateFieldListValue))
{
(string? itemType, string? key) = SabreTools.Filter.FilterParser.ParseFilterId(fieldName);
(string? itemType, string? key) = FilterParser.ParseFilterId(fieldName);
if (itemType == Models.Metadata.MetadataFile.MachineKey && key != null)
updateFields.Add(key);
}
@@ -2062,7 +2063,7 @@ Some special strings that can be used:
Dictionary<string, List<string>> updateFields = [];
foreach (string fieldName in GetList(features, UpdateFieldListValue))
{
(string? itemType, string? key) = SabreTools.Filter.FilterParser.ParseFilterId(fieldName);
(string? itemType, string? key) = FilterParser.ParseFilterId(fieldName);
if (itemType != null && itemType != Models.Metadata.MetadataFile.HeaderKey && itemType != Models.Metadata.MetadataFile.MachineKey && key != null)
{
if (!updateFields.ContainsKey(itemType))
@@ -2233,7 +2234,7 @@ Some special strings that can be used:
/// <summary>
/// Get FilterRunner from feature list
/// </summary>
private static Filter.FilterRunner GetFilterRunner(Dictionary<string, Feature?> features)
private static FilterRunner GetFilterRunner(Dictionary<string, Feature?> features)
{
// Populate filters
List<string> filterPairs = GetList(features, FilterListValue);
@@ -2245,7 +2246,7 @@ Some special strings that can be used:
// TODO: Support this use case somehow
}
var filterRunner = new Filter.FilterRunner(filterPairs.ToArray());
var filterRunner = new FilterRunner(filterPairs.ToArray());
return filterRunner;
}

View File

@@ -4,10 +4,10 @@ using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using SabreTools.Core;
using SabreTools.Core.Filter;
using SabreTools.Core.Tools;
using SabreTools.DatFiles;
using SabreTools.DatTools;
using SabreTools.Filter;
using SabreTools.Filtering;
using SabreTools.Hashing;
using SabreTools.Help;
@@ -423,7 +423,7 @@ Reset the internal state: reset();";
string filterString = $"{filterField}{(filterRemove == true ? "!" : string.Empty)}:{filterValue}";
// Create filter to run filters from
var filter = new Filter.FilterRunner([filterString]);
var filter = new FilterRunner([filterString]);
// Apply the filters blindly
batchState.DatFile.ExecuteFilters(filter);