Files
SabreTools/SabreTools.Filtering/DatHeaderRemover.cs

81 lines
1.9 KiB
C#
Raw Normal View History

2021-01-29 22:54:16 -08:00
using System.Collections.Generic;
using SabreTools.Core;
using SabreTools.Core.Tools;
using SabreTools.DatFiles;
using SabreTools.Logging;
namespace SabreTools.Filtering
{
/// <summary>
/// Represents the removal operations that need to be performed on a DatHeader
/// </summary>
public class DatHeaderRemover : Remover
{
#region Fields
/// <summary>
/// List of DatHeader fields to exclude from writing
/// </summary>
public List<DatHeaderField> DatHeaderFields { get; private set; } = new List<DatHeaderField>();
#endregion
#region Constructors
/// <summary>
/// Constructor
/// </summary>
public DatHeaderRemover()
{
logger = new Logger(this);
}
#endregion
#region Population
2021-01-29 22:54:16 -08:00
/// <inheritdoc/>
public override bool SetRemover(string field)
{
// If the key is null or empty, return false
if (string.IsNullOrWhiteSpace(field))
return false;
// If we have a DatHeader field
DatHeaderField datHeaderField = field.AsDatHeaderField();
if (datHeaderField != DatHeaderField.NULL)
{
DatHeaderFields.Add(datHeaderField);
return true;
}
return false;
}
#endregion
#region Running
2021-01-29 22:54:16 -08:00
/// <summary>
/// Remove fields with given values
/// </summary>
/// <param name="datItem">DatHeader to remove fields from</param>
public void RemoveFields(DatHeader datHeader)
{
if (datHeader == null)
return;
#region Common
if (DatHeaderFields == null)
return;
#endregion
// TODO: Figure out how to properly implement DatHeader field removal
}
#endregion
}
}