using System.Collections.Generic; using SabreTools.DatItems; using SabreTools.DatItems.Formats; namespace SabreTools.DatFiles.Formats { /// /// Represents an openMSX softawre list XML DAT /// public sealed class OpenMSX : SerializableDatFile { #region Constants /// /// DTD for original openMSX DATs /// private const string OpenMSXDTD = @" "; private const string OpenMSXCredits = @" "; #endregion #region Fields /// public override ItemType[] SupportedTypes => [ ItemType.Rom, ]; #endregion /// /// Constructor designed for casting a base DatFile /// /// Parent DatFile to copy from public OpenMSX(DatFile? datFile) : base(datFile) { Header.SetFieldValue(DatHeader.DatFormatKey, DatFormat.OpenMSX); } /// protected internal override List? GetMissingRequiredFields(DatItem datItem) { List missingFields = []; // Check item name if (string.IsNullOrEmpty(datItem.GetName())) missingFields.Add(Models.Metadata.Rom.NameKey); switch (datItem) { case Rom rom: if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key))) missingFields.Add(Models.Metadata.Rom.SHA1Key); break; } return missingFields; } } }