From 0df63787131ea7e692484225addbdfaf9f19a385 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 2 Apr 2026 21:07:41 -0400 Subject: [PATCH] Move item type override per-item --- SabreTools.Metadata.DatItems/DatItemT.cs | 7 ------ .../Formats/Adjuster.cs | 4 ++++ .../Formats/Analog.cs | 4 ++++ .../Formats/Archive.cs | 4 ++++ .../Formats/BiosSet.cs | 4 ++++ SabreTools.Metadata.DatItems/Formats/Blank.cs | 8 +++++++ SabreTools.Metadata.DatItems/Formats/Chip.cs | 4 ++++ .../Formats/Condition.cs | 4 ++++ .../Formats/ConfLocation.cs | 4 ++++ .../Formats/ConfSetting.cs | 4 ++++ .../Formats/Configuration.cs | 4 ++++ .../Formats/Control.cs | 4 ++++ .../Formats/DataArea.cs | 4 ++++ .../Formats/Device.cs | 4 ++++ .../Formats/DeviceRef.cs | 4 ++++ .../Formats/DipLocation.cs | 4 ++++ .../Formats/DipSwitch.cs | 24 +++++++++++-------- .../Formats/DipValue.cs | 4 ++++ SabreTools.Metadata.DatItems/Formats/Disk.cs | 3 +++ .../Formats/DiskArea.cs | 4 ++++ .../Formats/Display.cs | 4 ++++ .../Formats/Driver.cs | 4 ++++ .../Formats/Extension.cs | 4 ++++ .../Formats/Feature.cs | 4 ++++ SabreTools.Metadata.DatItems/Formats/Info.cs | 4 ++++ SabreTools.Metadata.DatItems/Formats/Input.cs | 4 ++++ .../Formats/Instance.cs | 4 ++++ SabreTools.Metadata.DatItems/Formats/Media.cs | 4 ++++ .../Formats/Original.cs | 20 +++++++++++----- SabreTools.Metadata.DatItems/Formats/Part.cs | 4 ++++ .../Formats/PartFeature.cs | 4 ++-- SabreTools.Metadata.DatItems/Formats/Port.cs | 4 ++++ .../Formats/RamOption.cs | 4 ++++ .../Formats/Release.cs | 4 ++++ .../Formats/ReleaseDetails.cs | 8 +++++++ SabreTools.Metadata.DatItems/Formats/Rom.cs | 3 +++ .../Formats/Sample.cs | 4 ++++ .../Formats/Serials.cs | 8 +++++++ .../Formats/SharedFeat.cs | 4 ++++ SabreTools.Metadata.DatItems/Formats/Slot.cs | 4 ++++ .../Formats/SlotOption.cs | 4 ++++ .../Formats/SoftwareList.cs | 4 ++++ SabreTools.Metadata.DatItems/Formats/Sound.cs | 8 +++++++ .../Formats/SourceDetails.cs | 8 +++++++ 44 files changed, 208 insertions(+), 25 deletions(-) diff --git a/SabreTools.Metadata.DatItems/DatItemT.cs b/SabreTools.Metadata.DatItems/DatItemT.cs index 3671404c..fb4eeefa 100644 --- a/SabreTools.Metadata.DatItems/DatItemT.cs +++ b/SabreTools.Metadata.DatItems/DatItemT.cs @@ -8,13 +8,6 @@ namespace SabreTools.Metadata.DatItems /// public abstract class DatItem : DatItem, IEquatable>, IComparable>, ICloneable where T : Data.Models.Metadata.DatItem, new() { - #region Fields - - /// /> - public override Data.Models.Metadata.ItemType ItemType => _internal.ItemType; - - #endregion - #region Constructors /// diff --git a/SabreTools.Metadata.DatItems/Formats/Adjuster.cs b/SabreTools.Metadata.DatItems/Formats/Adjuster.cs index 52cf9b9c..e9e78192 100644 --- a/SabreTools.Metadata.DatItems/Formats/Adjuster.cs +++ b/SabreTools.Metadata.DatItems/Formats/Adjuster.cs @@ -28,6 +28,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Adjuster)?.Default = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Adjuster; + public string? Name { get => (_internal as Data.Models.Metadata.Adjuster)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Analog.cs b/SabreTools.Metadata.DatItems/Formats/Analog.cs index 22fa8417..d4099c0f 100644 --- a/SabreTools.Metadata.DatItems/Formats/Analog.cs +++ b/SabreTools.Metadata.DatItems/Formats/Analog.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Analog; + public string? Mask { get => (_internal as Data.Models.Metadata.Analog)?.Mask; diff --git a/SabreTools.Metadata.DatItems/Formats/Archive.cs b/SabreTools.Metadata.DatItems/Formats/Archive.cs index fefa762a..4a266c33 100644 --- a/SabreTools.Metadata.DatItems/Formats/Archive.cs +++ b/SabreTools.Metadata.DatItems/Formats/Archive.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Archive; + public string? Name { get => (_internal as Data.Models.Metadata.Archive)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/BiosSet.cs b/SabreTools.Metadata.DatItems/Formats/BiosSet.cs index dea4e0a7..6d636f81 100644 --- a/SabreTools.Metadata.DatItems/Formats/BiosSet.cs +++ b/SabreTools.Metadata.DatItems/Formats/BiosSet.cs @@ -24,6 +24,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.BiosSet)?.Description = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.BiosSet; + public string? Name { get => (_internal as Data.Models.Metadata.BiosSet)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Blank.cs b/SabreTools.Metadata.DatItems/Formats/Blank.cs index c9f0dd8c..7c16d36b 100644 --- a/SabreTools.Metadata.DatItems/Formats/Blank.cs +++ b/SabreTools.Metadata.DatItems/Formats/Blank.cs @@ -10,6 +10,14 @@ namespace SabreTools.Metadata.DatItems.Formats [JsonObject("blank"), XmlRoot("blank")] public sealed class Blank : DatItem { + #region Fields + + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Blank; + + #endregion + #region Constructors public Blank() : base() { } diff --git a/SabreTools.Metadata.DatItems/Formats/Chip.cs b/SabreTools.Metadata.DatItems/Formats/Chip.cs index 122ddb41..9dcfcd20 100644 --- a/SabreTools.Metadata.DatItems/Formats/Chip.cs +++ b/SabreTools.Metadata.DatItems/Formats/Chip.cs @@ -18,6 +18,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Chip)?.ChipType = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Chip; + public string? Name { get => (_internal as Data.Models.Metadata.Chip)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Condition.cs b/SabreTools.Metadata.DatItems/Formats/Condition.cs index e5eacb91..3ef6035d 100644 --- a/SabreTools.Metadata.DatItems/Formats/Condition.cs +++ b/SabreTools.Metadata.DatItems/Formats/Condition.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Condition; + public string? Mask { get => (_internal as Data.Models.Metadata.Condition)?.Mask; diff --git a/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs b/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs index 5f1687bc..d1f3296a 100644 --- a/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs +++ b/SabreTools.Metadata.DatItems/Formats/ConfLocation.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.ConfLocation; + public string? Name { get => (_internal as Data.Models.Metadata.ConfLocation)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs b/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs index 550f7484..4577d6ef 100644 --- a/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs +++ b/SabreTools.Metadata.DatItems/Formats/ConfSetting.cs @@ -28,6 +28,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.ConfSetting)?.Default = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.ConfSetting; + public string? Name { get => (_internal as Data.Models.Metadata.ConfSetting)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Configuration.cs b/SabreTools.Metadata.DatItems/Formats/Configuration.cs index 845b6b91..0aebec88 100644 --- a/SabreTools.Metadata.DatItems/Formats/Configuration.cs +++ b/SabreTools.Metadata.DatItems/Formats/Configuration.cs @@ -23,6 +23,10 @@ namespace SabreTools.Metadata.DatItems.Formats } } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Configuration; + [JsonIgnore] public bool LocationsSpecified { diff --git a/SabreTools.Metadata.DatItems/Formats/Control.cs b/SabreTools.Metadata.DatItems/Formats/Control.cs index 29b349d0..794e43ac 100644 --- a/SabreTools.Metadata.DatItems/Formats/Control.cs +++ b/SabreTools.Metadata.DatItems/Formats/Control.cs @@ -18,6 +18,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Control)?.ControlType = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Control; + public bool? Reverse { get => (_internal as Data.Models.Metadata.Control)?.Reverse; diff --git a/SabreTools.Metadata.DatItems/Formats/DataArea.cs b/SabreTools.Metadata.DatItems/Formats/DataArea.cs index f1305250..7c184987 100644 --- a/SabreTools.Metadata.DatItems/Formats/DataArea.cs +++ b/SabreTools.Metadata.DatItems/Formats/DataArea.cs @@ -19,6 +19,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.DataArea)?.Endianness = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.DataArea; + public string? Name { get => (_internal as Data.Models.Metadata.DataArea)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Device.cs b/SabreTools.Metadata.DatItems/Formats/Device.cs index c4f2d9c7..6cac1b9d 100644 --- a/SabreTools.Metadata.DatItems/Formats/Device.cs +++ b/SabreTools.Metadata.DatItems/Formats/Device.cs @@ -51,6 +51,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Device)?.Interface = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Device; + public bool? Mandatory { get => (_internal as Data.Models.Metadata.Device)?.Mandatory; diff --git a/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs b/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs index c8f286cd..9e3b1ad8 100644 --- a/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs +++ b/SabreTools.Metadata.DatItems/Formats/DeviceRef.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.DeviceRef; + public string? Name { get => (_internal as Data.Models.Metadata.DeviceRef)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/DipLocation.cs b/SabreTools.Metadata.DatItems/Formats/DipLocation.cs index 4ab2c47f..1ac9e7fb 100644 --- a/SabreTools.Metadata.DatItems/Formats/DipLocation.cs +++ b/SabreTools.Metadata.DatItems/Formats/DipLocation.cs @@ -18,6 +18,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.DipLocation)?.Inverted = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.DipLocation; + public string? Name { get => (_internal as Data.Models.Metadata.DipLocation)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs b/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs index 36f02b7f..8e52ae80 100644 --- a/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs +++ b/SabreTools.Metadata.DatItems/Formats/DipSwitch.cs @@ -39,6 +39,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.DipSwitch)?.Default = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.DipSwitch; + [JsonIgnore] public bool LocationsSpecified { @@ -61,16 +65,6 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.DipSwitch)?.Name = value; } - [JsonIgnore] - public bool ValuesSpecified - { - get - { - var values = Read(Data.Models.Metadata.DipSwitch.DipValueKey); - return values is not null && values.Length > 0; - } - } - [JsonIgnore] public bool PartSpecified { @@ -89,6 +83,16 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.DipSwitch)?.Tag = value; } + [JsonIgnore] + public bool ValuesSpecified + { + get + { + var values = Read(Data.Models.Metadata.DipSwitch.DipValueKey); + return values is not null && values.Length > 0; + } + } + #endregion #region Constructors diff --git a/SabreTools.Metadata.DatItems/Formats/DipValue.cs b/SabreTools.Metadata.DatItems/Formats/DipValue.cs index 7f22f873..7b352539 100644 --- a/SabreTools.Metadata.DatItems/Formats/DipValue.cs +++ b/SabreTools.Metadata.DatItems/Formats/DipValue.cs @@ -28,6 +28,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.DipValue)?.Default = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.DipValue; + public string? Name { get => (_internal as Data.Models.Metadata.DipValue)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Disk.cs b/SabreTools.Metadata.DatItems/Formats/Disk.cs index 6fd08022..74bcc47d 100644 --- a/SabreTools.Metadata.DatItems/Formats/Disk.cs +++ b/SabreTools.Metadata.DatItems/Formats/Disk.cs @@ -38,6 +38,9 @@ namespace SabreTools.Metadata.DatItems.Formats } } + /// /> + public override ItemType ItemType => ItemType.Disk; + public string? Name { get => (_internal as Data.Models.Metadata.Disk)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/DiskArea.cs b/SabreTools.Metadata.DatItems/Formats/DiskArea.cs index c20895d9..bf556af4 100644 --- a/SabreTools.Metadata.DatItems/Formats/DiskArea.cs +++ b/SabreTools.Metadata.DatItems/Formats/DiskArea.cs @@ -13,6 +13,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.DiskArea; + public string? Name { get => (_internal as Data.Models.Metadata.DiskArea)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Display.cs b/SabreTools.Metadata.DatItems/Formats/Display.cs index f85e4b1f..e83ac235 100644 --- a/SabreTools.Metadata.DatItems/Formats/Display.cs +++ b/SabreTools.Metadata.DatItems/Formats/Display.cs @@ -25,6 +25,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Display)?.FlipX = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Display; + public string? Tag { get => (_internal as Data.Models.Metadata.Display)?.Tag; diff --git a/SabreTools.Metadata.DatItems/Formats/Driver.cs b/SabreTools.Metadata.DatItems/Formats/Driver.cs index 18005767..16c46db7 100644 --- a/SabreTools.Metadata.DatItems/Formats/Driver.cs +++ b/SabreTools.Metadata.DatItems/Formats/Driver.cs @@ -42,6 +42,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Driver)?.Incomplete = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Driver; + public bool? NoSoundHardware { get => (_internal as Data.Models.Metadata.Driver)?.NoSoundHardware; diff --git a/SabreTools.Metadata.DatItems/Formats/Extension.cs b/SabreTools.Metadata.DatItems/Formats/Extension.cs index 29e8511b..718ad072 100644 --- a/SabreTools.Metadata.DatItems/Formats/Extension.cs +++ b/SabreTools.Metadata.DatItems/Formats/Extension.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Extension; + public string? Name { get => (_internal as Data.Models.Metadata.Extension)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Feature.cs b/SabreTools.Metadata.DatItems/Formats/Feature.cs index cf3ed219..15d0e2da 100644 --- a/SabreTools.Metadata.DatItems/Formats/Feature.cs +++ b/SabreTools.Metadata.DatItems/Formats/Feature.cs @@ -18,6 +18,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Feature)?.FeatureType = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Feature; + public string? Name { get => (_internal as Data.Models.Metadata.Feature)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Info.cs b/SabreTools.Metadata.DatItems/Formats/Info.cs index 1029e8d7..45d2d836 100644 --- a/SabreTools.Metadata.DatItems/Formats/Info.cs +++ b/SabreTools.Metadata.DatItems/Formats/Info.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Info; + public string? Name { get => (_internal as Data.Models.Metadata.Info)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Input.cs b/SabreTools.Metadata.DatItems/Formats/Input.cs index 15ad3e0d..72871570 100644 --- a/SabreTools.Metadata.DatItems/Formats/Input.cs +++ b/SabreTools.Metadata.DatItems/Formats/Input.cs @@ -23,6 +23,10 @@ namespace SabreTools.Metadata.DatItems.Formats } } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Input; + public bool? Service { get => (_internal as Data.Models.Metadata.Input)?.Service; diff --git a/SabreTools.Metadata.DatItems/Formats/Instance.cs b/SabreTools.Metadata.DatItems/Formats/Instance.cs index b6d48d6b..82afeae6 100644 --- a/SabreTools.Metadata.DatItems/Formats/Instance.cs +++ b/SabreTools.Metadata.DatItems/Formats/Instance.cs @@ -18,6 +18,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Instance)?.BriefName = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Instance; + public string? Name { get => (_internal as Data.Models.Metadata.Instance)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Media.cs b/SabreTools.Metadata.DatItems/Formats/Media.cs index 319fcf04..75bc3f0c 100644 --- a/SabreTools.Metadata.DatItems/Formats/Media.cs +++ b/SabreTools.Metadata.DatItems/Formats/Media.cs @@ -13,6 +13,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Media; + public string? Name { get => (_internal as Data.Models.Metadata.Media)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Original.cs b/SabreTools.Metadata.DatItems/Formats/Original.cs index 2239723a..ed0038f1 100644 --- a/SabreTools.Metadata.DatItems/Formats/Original.cs +++ b/SabreTools.Metadata.DatItems/Formats/Original.cs @@ -9,12 +9,7 @@ namespace SabreTools.Metadata.DatItems.Formats [JsonObject("original"), XmlRoot("original")] public sealed class Original { - [JsonProperty("value"), XmlElement("value")] - public bool? Value - { - get => _internal.ReadBool(Data.Models.Metadata.Original.ValueKey); - set => _internal[Data.Models.Metadata.Original.ValueKey] = value; - } + #region Fields [JsonProperty("content"), XmlElement("content")] public string? Content @@ -23,6 +18,19 @@ namespace SabreTools.Metadata.DatItems.Formats set => _internal.Content = value; } + /// /> + public Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Original; + + [JsonProperty("value"), XmlElement("value")] + public bool? Value + { + get => _internal.ReadBool(Data.Models.Metadata.Original.ValueKey); + set => _internal[Data.Models.Metadata.Original.ValueKey] = value; + } + + #endregion + /// /// Internal Original model /// diff --git a/SabreTools.Metadata.DatItems/Formats/Part.cs b/SabreTools.Metadata.DatItems/Formats/Part.cs index ac9fedc7..da121ff4 100644 --- a/SabreTools.Metadata.DatItems/Formats/Part.cs +++ b/SabreTools.Metadata.DatItems/Formats/Part.cs @@ -29,6 +29,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Part)?.Interface = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Part; + public string? Name { get => (_internal as Data.Models.Metadata.Part)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/PartFeature.cs b/SabreTools.Metadata.DatItems/Formats/PartFeature.cs index edf85427..ac6f0689 100644 --- a/SabreTools.Metadata.DatItems/Formats/PartFeature.cs +++ b/SabreTools.Metadata.DatItems/Formats/PartFeature.cs @@ -28,8 +28,8 @@ namespace SabreTools.Metadata.DatItems.Formats } /// /> - /// This needs to be set to PartFeature because internally it uses Feature - public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.PartFeature; + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.PartFeature; public string? Name { diff --git a/SabreTools.Metadata.DatItems/Formats/Port.cs b/SabreTools.Metadata.DatItems/Formats/Port.cs index fbc8da0a..eb19965f 100644 --- a/SabreTools.Metadata.DatItems/Formats/Port.cs +++ b/SabreTools.Metadata.DatItems/Formats/Port.cs @@ -23,6 +23,10 @@ namespace SabreTools.Metadata.DatItems.Formats } } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Port; + public string? Tag { get => (_internal as Data.Models.Metadata.Port)?.Tag; diff --git a/SabreTools.Metadata.DatItems/Formats/RamOption.cs b/SabreTools.Metadata.DatItems/Formats/RamOption.cs index a7334869..3c33c5ad 100644 --- a/SabreTools.Metadata.DatItems/Formats/RamOption.cs +++ b/SabreTools.Metadata.DatItems/Formats/RamOption.cs @@ -24,6 +24,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.RamOption)?.Default = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.RamOption; + public string? Name { get => (_internal as Data.Models.Metadata.RamOption)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Release.cs b/SabreTools.Metadata.DatItems/Formats/Release.cs index 243badab..2810a57b 100644 --- a/SabreTools.Metadata.DatItems/Formats/Release.cs +++ b/SabreTools.Metadata.DatItems/Formats/Release.cs @@ -18,6 +18,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Release)?.Default = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Release; + public string? Name { get => (_internal as Data.Models.Metadata.Release)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs b/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs index 5b639242..eedaefa0 100644 --- a/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs +++ b/SabreTools.Metadata.DatItems/Formats/ReleaseDetails.cs @@ -10,6 +10,14 @@ namespace SabreTools.Metadata.DatItems.Formats [JsonObject("release_details"), XmlRoot("release_details")] public sealed class ReleaseDetails : DatItem { + #region Fields + + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.ReleaseDetails; + + #endregion + #region Constructors public ReleaseDetails() : base() { } diff --git a/SabreTools.Metadata.DatItems/Formats/Rom.cs b/SabreTools.Metadata.DatItems/Formats/Rom.cs index 45b6dd9c..5581774c 100644 --- a/SabreTools.Metadata.DatItems/Formats/Rom.cs +++ b/SabreTools.Metadata.DatItems/Formats/Rom.cs @@ -60,6 +60,9 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.Rom)?.Inverted = value; } + /// /> + public override ItemType ItemType => ItemType.Rom; + public LoadFlag? LoadFlag { get => (_internal as Data.Models.Metadata.Rom)?.LoadFlag; diff --git a/SabreTools.Metadata.DatItems/Formats/Sample.cs b/SabreTools.Metadata.DatItems/Formats/Sample.cs index 6ceb2d03..a9a74652 100644 --- a/SabreTools.Metadata.DatItems/Formats/Sample.cs +++ b/SabreTools.Metadata.DatItems/Formats/Sample.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Sample; + public string? Name { get => (_internal as Data.Models.Metadata.Sample)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Serials.cs b/SabreTools.Metadata.DatItems/Formats/Serials.cs index a9e376d6..f6e53643 100644 --- a/SabreTools.Metadata.DatItems/Formats/Serials.cs +++ b/SabreTools.Metadata.DatItems/Formats/Serials.cs @@ -10,6 +10,14 @@ namespace SabreTools.Metadata.DatItems.Formats [JsonObject("serials"), XmlRoot("serials")] public sealed class Serials : DatItem { + #region Fields + + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Serials; + + #endregion + #region Constructors public Serials() : base() { } diff --git a/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs b/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs index 0a587947..f8482b37 100644 --- a/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs +++ b/SabreTools.Metadata.DatItems/Formats/SharedFeat.cs @@ -12,6 +12,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.SharedFeat; + public string? Name { get => (_internal as Data.Models.Metadata.SharedFeat)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Slot.cs b/SabreTools.Metadata.DatItems/Formats/Slot.cs index 5fe28517..57ff8143 100644 --- a/SabreTools.Metadata.DatItems/Formats/Slot.cs +++ b/SabreTools.Metadata.DatItems/Formats/Slot.cs @@ -13,6 +13,10 @@ namespace SabreTools.Metadata.DatItems.Formats { #region Fields + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Slot; + public string? Name { get => (_internal as Data.Models.Metadata.Slot)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/SlotOption.cs b/SabreTools.Metadata.DatItems/Formats/SlotOption.cs index aa012659..7b69df2c 100644 --- a/SabreTools.Metadata.DatItems/Formats/SlotOption.cs +++ b/SabreTools.Metadata.DatItems/Formats/SlotOption.cs @@ -24,6 +24,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.SlotOption)?.DevName = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.SlotOption; + public string? Name { get => (_internal as Data.Models.Metadata.SlotOption)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs b/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs index 4e6b6293..3f23af77 100644 --- a/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs +++ b/SabreTools.Metadata.DatItems/Formats/SoftwareList.cs @@ -18,6 +18,10 @@ namespace SabreTools.Metadata.DatItems.Formats set => (_internal as Data.Models.Metadata.SoftwareList)?.Description = value; } + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.SoftwareList; + public string? Name { get => (_internal as Data.Models.Metadata.SoftwareList)?.Name; diff --git a/SabreTools.Metadata.DatItems/Formats/Sound.cs b/SabreTools.Metadata.DatItems/Formats/Sound.cs index aa40ea59..e726ff69 100644 --- a/SabreTools.Metadata.DatItems/Formats/Sound.cs +++ b/SabreTools.Metadata.DatItems/Formats/Sound.cs @@ -10,6 +10,14 @@ namespace SabreTools.Metadata.DatItems.Formats [JsonObject("sound"), XmlRoot("sound")] public sealed class Sound : DatItem { + #region Fields + + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.Sound; + + #endregion + #region Constructors public Sound() : base() { } diff --git a/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs b/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs index d176b7b5..0d3f9e61 100644 --- a/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs +++ b/SabreTools.Metadata.DatItems/Formats/SourceDetails.cs @@ -10,6 +10,14 @@ namespace SabreTools.Metadata.DatItems.Formats [JsonObject("source_details"), XmlRoot("source_details")] public sealed class SourceDetails : DatItem { + #region Fields + + /// /> + public override Data.Models.Metadata.ItemType ItemType + => Data.Models.Metadata.ItemType.SourceDetails; + + #endregion + #region Constructors public SourceDetails() : base() { }