using System.Collections.Generic; using SabreTools.DatItems; using SabreTools.DatItems.Formats; namespace SabreTools.DatFiles.Formats { /// /// Represents an OfflineList XML DAT /// internal sealed class OfflineList : SerializableDatFile { /// public override ItemType[] SupportedTypes => [ ItemType.Rom, ]; /// /// Constructor designed for casting a base DatFile /// /// Parent DatFile to copy from public OfflineList(DatFile? datFile) : base(datFile) { } /// protected internal override List? GetMissingRequiredFields(DatItem datItem) { List missingFields = []; switch (datItem) { case Rom rom: if (rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) == null || rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) < 0) missingFields.Add(Models.Metadata.Rom.SizeKey); if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey))) missingFields.Add(Models.Metadata.Rom.CRCKey); break; } return missingFields; } } }