Move ItemType to untyped base class

This commit is contained in:
Matt Nadareski
2024-03-10 20:45:54 -04:00
parent 97542bf966
commit 49b7a5b273
7 changed files with 34 additions and 14 deletions

View File

@@ -84,6 +84,11 @@ namespace SabreTools.DatItems
#region Fields #region Fields
/// <summary>
/// Item type for the object
/// </summary>
protected abstract ItemType ItemType { get; }
/// <summary> /// <summary>
/// Internal model wrapped by this DatItem /// Internal model wrapped by this DatItem
/// </summary> /// </summary>
@@ -703,14 +708,8 @@ namespace SabreTools.DatItems
/// </summary> /// </summary>
public abstract class DatItem<T> : DatItem, IEquatable<DatItem<T>>, IComparable<DatItem<T>>, ICloneable where T : Models.Metadata.DatItem public abstract class DatItem<T> : DatItem, IEquatable<DatItem<T>>, IComparable<DatItem<T>>, ICloneable where T : Models.Metadata.DatItem
{ {
// TODO: Move to base class after implementation
#region Fields #region Fields
/// <summary>
/// Item type for the object
/// </summary>
protected abstract ItemType ItemType { get; }
/// <summary> /// <summary>
/// Key for accessing the item name, if it exists /// Key for accessing the item name, if it exists
/// </summary> /// </summary>
@@ -765,7 +764,6 @@ namespace SabreTools.DatItems
#endregion #endregion
// TODO: Figure out how to replace individual versions with this
#region Cloning Methods #region Cloning Methods
/// <summary> /// <summary>

View File

@@ -12,6 +12,9 @@ namespace SabreTools.DatItems.Formats
{ {
#region Fields #region Fields
/// <inheritdoc>/>
protected override ItemType ItemType => ItemType.Archive;
/// <summary> /// <summary>
/// Archive ID number /// Archive ID number
/// </summary> /// </summary>
@@ -89,7 +92,7 @@ namespace SabreTools.DatItems.Formats
_internal = new Models.Metadata.Archive(); _internal = new Models.Metadata.Archive();
SetName(string.Empty); SetName(string.Empty);
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Archive); SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine()); SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
} }
@@ -100,7 +103,7 @@ namespace SabreTools.DatItems.Formats
{ {
_internal = item; _internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Archive); SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine()); SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
} }

View File

@@ -10,6 +10,13 @@ namespace SabreTools.DatItems.Formats
[JsonObject("blank"), XmlRoot("blank")] [JsonObject("blank"), XmlRoot("blank")]
public sealed class Blank : DatItem public sealed class Blank : DatItem
{ {
#region Fields
/// <inheritdoc>/>
protected override ItemType ItemType => ItemType.Blank;
#endregion
#region Constructors #region Constructors
/// <summary> /// <summary>
@@ -17,7 +24,7 @@ namespace SabreTools.DatItems.Formats
/// </summary> /// </summary>
public Blank() public Blank()
{ {
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Blank); SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
} }
#endregion #endregion

View File

@@ -27,6 +27,9 @@ namespace SabreTools.DatItems.Formats
#region Fields #region Fields
/// <inheritdoc>/>
protected override ItemType ItemType => ItemType.File;
/// <summary> /// <summary>
/// ID value /// ID value
/// </summary> /// </summary>
@@ -100,7 +103,7 @@ namespace SabreTools.DatItems.Formats
/// </summary> /// </summary>
public File() public File()
{ {
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.File); SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
} }
/// <summary> /// <summary>
@@ -114,7 +117,7 @@ namespace SabreTools.DatItems.Formats
_sha1 = baseFile.SHA1; _sha1 = baseFile.SHA1;
_sha256 = baseFile.SHA256; _sha256 = baseFile.SHA256;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.File); SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00); SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
} }

View File

@@ -13,6 +13,9 @@ namespace SabreTools.DatItems.Formats
{ {
#region Fields #region Fields
/// <inheritdoc>/>
protected override ItemType ItemType => ItemType.ReleaseDetails;
/// <summary> /// <summary>
/// Id value /// Id value
/// </summary> /// </summary>
@@ -113,7 +116,7 @@ namespace SabreTools.DatItems.Formats
/// </summary> /// </summary>
public ReleaseDetails() public ReleaseDetails()
{ {
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ReleaseDetails); SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
} }
#endregion #endregion

View File

@@ -13,6 +13,9 @@ namespace SabreTools.DatItems.Formats
{ {
#region Fields #region Fields
/// <inheritdoc>/>
protected override ItemType ItemType => ItemType.Serials;
/// <summary> /// <summary>
/// Digital serial 1 value /// Digital serial 1 value
/// </summary> /// </summary>
@@ -106,7 +109,7 @@ namespace SabreTools.DatItems.Formats
/// </summary> /// </summary>
public Serials() public Serials()
{ {
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Serials); SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
} }
#endregion #endregion

View File

@@ -13,6 +13,9 @@ namespace SabreTools.DatItems.Formats
{ {
#region Fields #region Fields
/// <inheritdoc>/>
protected override ItemType ItemType => ItemType.SourceDetails;
/// <summary> /// <summary>
/// Id value /// Id value
/// </summary> /// </summary>