Remove redundant ItemType declarations

This commit is contained in:
Matt Nadareski
2026-04-01 11:37:44 -04:00
parent 3e2bba866d
commit 6810dce2ed
48 changed files with 18 additions and 313 deletions

View File

@@ -23,7 +23,7 @@ namespace SabreTools.Data.Extensions.Test
Rom? actual = self.ConvertToRom();
Assert.NotNull(actual);
Assert.Equal(8, actual.Count);
Assert.Equal(7, actual.Count);
Assert.Equal(ItemType.Rom, actual.ItemType);
Assert.Null(actual[Rom.NameKey]);
Assert.Null(actual[Rom.MergeKey]);
@@ -51,7 +51,7 @@ namespace SabreTools.Data.Extensions.Test
Rom? actual = self.ConvertToRom();
Assert.NotNull(actual);
Assert.Equal(8, actual.Count);
Assert.Equal(7, actual.Count);
Assert.Equal(ItemType.Rom, actual.ItemType);
Assert.Equal("XXXXXX.chd", actual[Rom.NameKey]);
Assert.Equal("XXXXXX", actual[Rom.MergeKey]);
@@ -69,7 +69,7 @@ namespace SabreTools.Data.Extensions.Test
Rom? actual = self.ConvertToRom();
Assert.NotNull(actual);
Assert.Equal(6, actual.Count);
Assert.Equal(5, actual.Count);
Assert.Equal(ItemType.Rom, actual.ItemType);
Assert.Null(actual[Rom.NameKey]);
Assert.Null(actual[Rom.MD5Key]);
@@ -93,7 +93,7 @@ namespace SabreTools.Data.Extensions.Test
Rom? actual = self.ConvertToRom();
Assert.NotNull(actual);
Assert.Equal(6, actual.Count);
Assert.Equal(5, actual.Count);
Assert.Equal(ItemType.Rom, actual.ItemType);
Assert.Equal("XXXXXX.aaruf", actual[Rom.NameKey]);
Assert.Equal("XXXXXX", actual[Rom.MD5Key]);

View File

@@ -23,7 +23,7 @@ namespace SabreTools.Metadata.DatItems.Test
{
private readonly string? _nameKey;
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Blank;
public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Blank;
public TestDatItem() => _nameKey = TestDatItemModel.NameKey;

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
using SabreTools.Data.Extensions;
@@ -85,7 +85,7 @@ namespace SabreTools.Metadata.DatItems
/// <summary>
/// Item type for the object
/// </summary>
internal abstract Data.Models.Metadata.ItemType ItemType { get; }
public abstract Data.Models.Metadata.ItemType ItemType { get; }
#endregion

View File

@@ -8,6 +8,13 @@ namespace SabreTools.Metadata.DatItems
/// </summary>
public abstract class DatItem<T> : DatItem, IEquatable<DatItem<T>>, IComparable<DatItem<T>>, ICloneable where T : Data.Models.Metadata.DatItem, new()
{
#region Fields
/// <inheritdoc>/>
public override Data.Models.Metadata.ItemType ItemType => _internal.ItemType;
#endregion
#region Constructors
/// <summary>

View File

@@ -12,9 +12,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Adjuster;
[JsonIgnore]
public bool ConditionsSpecified
{

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("analog"), XmlRoot("analog")]
public sealed class Analog : DatItem<Data.Models.Metadata.Analog>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Analog;
#endregion
#region Constructors
public Analog() : base() { }

View File

@@ -10,80 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("archive"), XmlRoot("archive")]
public sealed class Archive : DatItem<Data.Models.Metadata.Archive>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Archive;
// TODO: None of the following are used or checked
/// <summary>
/// Archive ID number
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
[JsonProperty("number"), XmlElement("number")]
public string? Number { get; set; }
/// <summary>
/// Clone value
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
[JsonProperty("clone"), XmlElement("clone")]
public string? CloneValue { get; set; }
/// <summary>
/// Regional parent value
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
[JsonProperty("regparent"), XmlElement("regparent")]
public string? RegParent { get; set; }
/// <summary>
/// Region value
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
[JsonProperty("region"), XmlElement("region")]
public string? Region { get; set; }
/// <summary>
/// Languages value
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
[JsonProperty("languages"), XmlElement("languages")]
public string? Languages { get; set; }
/// <summary>
/// Development status value
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
[JsonProperty("devstatus"), XmlElement("devstatus")]
public string? DevStatus { get; set; }
/// <summary>
/// Physical value
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
/// <remarks>TODO: Is this numeric or a flag?</remarks>
[JsonProperty("physical"), XmlElement("physical")]
public string? Physical { get; set; }
/// <summary>
/// Complete value
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
/// <remarks>TODO: Is this numeric or a flag?</remarks>
[JsonProperty("complete"), XmlElement("complete")]
public string? Complete { get; set; }
/// <summary>
/// Categories value
/// </summary>
/// <remarks>TODO: No-Intro database export only</remarks>
[JsonProperty("categories"), XmlElement("categories")]
public string? Categories { get; set; }
#endregion
#region Constructors
public Archive() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("biosset"), XmlRoot("biosset")]
public sealed class BiosSet : DatItem<Data.Models.Metadata.BiosSet>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.BiosSet;
#endregion
#region Constructors
public BiosSet() : base() { }

View File

@@ -12,7 +12,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Blank;
public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Blank;
#endregion

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("chip"), XmlRoot("chip")]
public sealed class Chip : DatItem<Data.Models.Metadata.Chip>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Chip;
#endregion
#region Constructors
public Chip() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("condition"), XmlRoot("condition")]
public sealed class Condition : DatItem<Data.Models.Metadata.Condition>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Condition;
#endregion
#region Constructors
public Condition() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("conflocation"), XmlRoot("conflocation")]
public sealed class ConfLocation : DatItem<Data.Models.Metadata.ConfLocation>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.ConfLocation;
#endregion
#region Constructors
public ConfLocation() : base() { }

View File

@@ -12,9 +12,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.ConfSetting;
[JsonIgnore]
public bool ConditionsSpecified
{

View File

@@ -13,9 +13,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Configuration;
[JsonIgnore]
public bool ConditionsSpecified
{

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("control"), XmlRoot("control")]
public sealed class Control : DatItem<Data.Models.Metadata.Control>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Control;
#endregion
#region Constructors
public Control() : base() { }

View File

@@ -11,13 +11,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("dataarea"), XmlRoot("dataarea")]
public sealed class DataArea : DatItem<Data.Models.Metadata.DataArea>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.DataArea;
#endregion
#region Constructors
public DataArea() : base() { }

View File

@@ -13,9 +13,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Device;
[JsonIgnore]
public bool InstancesSpecified
{

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("device_ref"), XmlRoot("device_ref")]
public sealed class DeviceRef : DatItem<Data.Models.Metadata.DeviceRef>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.DeviceRef;
#endregion
#region Constructors
public DeviceRef() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("diplocation"), XmlRoot("diplocation")]
public sealed class DipLocation : DatItem<Data.Models.Metadata.DipLocation>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.DipLocation;
#endregion
#region Constructors
public DipLocation() : base() { }

View File

@@ -22,9 +22,6 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.DipSwitch;
[JsonIgnore]
public bool ConditionsSpecified
{

View File

@@ -12,9 +12,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.DipValue;
[JsonIgnore]
public bool ConditionsSpecified
{

View File

@@ -28,9 +28,6 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Fields
/// <inheritdoc>/>
internal override ItemType ItemType => ItemType.Disk;
[JsonIgnore]
public bool DiskAreaSpecified
{

View File

@@ -11,13 +11,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("diskarea"), XmlRoot("diskarea")]
public sealed class DiskArea : DatItem<Data.Models.Metadata.DiskArea>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.DiskArea;
#endregion
#region Constructors
public DiskArea() : base() { }

View File

@@ -11,13 +11,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("display"), XmlRoot("display")]
public sealed class Display : DatItem<Data.Models.Metadata.Display>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Display;
#endregion
#region Constructors
public Display() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("driver"), XmlRoot("driver")]
public sealed class Driver : DatItem<Data.Models.Metadata.Driver>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Driver;
#endregion
#region Constructors
public Driver() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("extension"), XmlRoot("extension")]
public sealed class Extension : DatItem<Data.Models.Metadata.Extension>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Extension;
#endregion
#region Constructors
public Extension() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("feature"), XmlRoot("feature")]
public sealed class Feature : DatItem<Data.Models.Metadata.Feature>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Feature;
#endregion
#region Constructors
public Feature() : base() { }

View File

@@ -27,7 +27,7 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.File;
public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.File;
/// <summary>
/// ID value

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("info"), XmlRoot("info")]
public sealed class Info : DatItem<Data.Models.Metadata.Info>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Info;
#endregion
#region Constructors
public Info() : base() { }

View File

@@ -13,9 +13,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Input;
[JsonIgnore]
public bool ControlsSpecified
{

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("instance"), XmlRoot("instance")]
public sealed class Instance : DatItem<Data.Models.Metadata.Instance>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Instance;
#endregion
#region Constructors
public Instance() : base() { }

View File

@@ -11,13 +11,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("media"), XmlRoot("media")]
public sealed class Media : DatItem<Data.Models.Metadata.Media>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Media;
#endregion
#region Constructors
public Media() : base()

View File

@@ -13,9 +13,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Part;
[JsonIgnore]
public bool FeaturesSpecified
{

View File

@@ -22,7 +22,8 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.PartFeature;
/// <remarks>This needs to be set to PartFeature because internally it uses Feature</remarks>
public override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.PartFeature;
#endregion

View File

@@ -13,9 +13,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Port;
[JsonIgnore]
public bool AnalogsSpecified
{

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("ramoption"), XmlRoot("ramoption")]
public sealed class RamOption : DatItem<Data.Models.Metadata.RamOption>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.RamOption;
#endregion
#region Constructors
public RamOption() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("release"), XmlRoot("release")]
public sealed class Release : DatItem<Data.Models.Metadata.Release>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Release;
#endregion
#region Constructors
public Release() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("release_details"), XmlRoot("release_details")]
public sealed class ReleaseDetails : DatItem<Data.Models.Metadata.ReleaseDetails>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.ReleaseDetails;
#endregion
#region Constructors
public ReleaseDetails() : base() { }

View File

@@ -28,9 +28,6 @@ namespace SabreTools.Metadata.DatItems.Formats
#region Fields
/// <inheritdoc>/>
internal override ItemType ItemType => ItemType.Rom;
[JsonIgnore]
public bool ItemStatusSpecified
{

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("sample"), XmlRoot("sample")]
public class Sample : DatItem<Data.Models.Metadata.Sample>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Sample;
#endregion
#region Constructors
public Sample() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("serials"), XmlRoot("serials")]
public sealed class Serials : DatItem<Data.Models.Metadata.Serials>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Serials;
#endregion
#region Constructors
public Serials() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("sharedfeat"), XmlRoot("sharedfeat")]
public sealed class SharedFeat : DatItem<Data.Models.Metadata.SharedFeat>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.SharedFeat;
#endregion
#region Constructors
public SharedFeat() : base() { }

View File

@@ -13,9 +13,6 @@ namespace SabreTools.Metadata.DatItems.Formats
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Slot;
[JsonIgnore]
public bool SlotOptionsSpecified
{

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("slotoption"), XmlRoot("slotoption")]
public sealed class SlotOption : DatItem<Data.Models.Metadata.SlotOption>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.SlotOption;
#endregion
#region Constructors
public SlotOption() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("softwarelist"), XmlRoot("softwarelist")]
public sealed class SoftwareList : DatItem<Data.Models.Metadata.SoftwareList>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.SoftwareList;
#endregion
#region Constructors
public SoftwareList() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("sound"), XmlRoot("sound")]
public sealed class Sound : DatItem<Data.Models.Metadata.Sound>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.Sound;
#endregion
#region Constructors
public Sound() : base() { }

View File

@@ -10,13 +10,6 @@ namespace SabreTools.Metadata.DatItems.Formats
[JsonObject("source_details"), XmlRoot("source_details")]
public sealed class SourceDetails : DatItem<Data.Models.Metadata.SourceDetails>
{
#region Fields
/// <inheritdoc>/>
internal override Data.Models.Metadata.ItemType ItemType => Data.Models.Metadata.ItemType.SourceDetails;
#endregion
#region Constructors
public SourceDetails() : base() { }

View File

@@ -30,10 +30,6 @@
<None Include="README.md" Pack="true" PackagePath="" />
</ItemGroup>
<ItemGroup>
<InternalsVisibleTo Include="SabreTools.Metadata.DatItems.Test" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
<PackageReference Include="SabreTools.Hashing" Version="[2.0.0]" />