using System.Collections.Generic; using SabreTools.Core; using SabreTools.Core.Tools; using SabreTools.DatFiles; using SabreTools.Logging; namespace SabreTools.Filtering { /// /// Represents the removal operations that need to be performed on a DatHeader /// public class DatHeaderRemover : Remover { #region Fields /// /// List of DatHeader fields to exclude from writing /// public List DatHeaderFields { get; private set; } = new List(); #endregion #region Constructors /// /// Constructor /// public DatHeaderRemover() { logger = new Logger(this); } #endregion #region Population /// 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 /// /// Remove fields with given values /// /// DatHeader to remove fields from 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 } }