mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Move ItemType to untyped base class
This commit is contained in:
@@ -84,6 +84,11 @@ namespace SabreTools.DatItems
|
||||
|
||||
#region Fields
|
||||
|
||||
/// <summary>
|
||||
/// Item type for the object
|
||||
/// </summary>
|
||||
protected abstract ItemType ItemType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Internal model wrapped by this DatItem
|
||||
/// </summary>
|
||||
@@ -703,14 +708,8 @@ namespace SabreTools.DatItems
|
||||
/// </summary>
|
||||
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
|
||||
|
||||
/// <summary>
|
||||
/// Item type for the object
|
||||
/// </summary>
|
||||
protected abstract ItemType ItemType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Key for accessing the item name, if it exists
|
||||
/// </summary>
|
||||
@@ -765,7 +764,6 @@ namespace SabreTools.DatItems
|
||||
|
||||
#endregion
|
||||
|
||||
// TODO: Figure out how to replace individual versions with this
|
||||
#region Cloning Methods
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -12,6 +12,9 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Archive;
|
||||
|
||||
/// <summary>
|
||||
/// Archive ID number
|
||||
/// </summary>
|
||||
@@ -89,7 +92,7 @@ namespace SabreTools.DatItems.Formats
|
||||
_internal = new Models.Metadata.Archive();
|
||||
|
||||
SetName(string.Empty);
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Archive);
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
@@ -100,7 +103,7 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
_internal = item;
|
||||
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Archive);
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,13 @@ namespace SabreTools.DatItems.Formats
|
||||
[JsonObject("blank"), XmlRoot("blank")]
|
||||
public sealed class Blank : DatItem
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Blank;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
@@ -17,7 +24,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public Blank()
|
||||
{
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Blank);
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -27,6 +27,9 @@ namespace SabreTools.DatItems.Formats
|
||||
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.File;
|
||||
|
||||
/// <summary>
|
||||
/// ID value
|
||||
/// </summary>
|
||||
@@ -100,7 +103,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public File()
|
||||
{
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.File);
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -114,7 +117,7 @@ namespace SabreTools.DatItems.Formats
|
||||
_sha1 = baseFile.SHA1;
|
||||
_sha256 = baseFile.SHA256;
|
||||
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.File);
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
|
||||
}
|
||||
|
||||
|
||||
@@ -13,6 +13,9 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.ReleaseDetails;
|
||||
|
||||
/// <summary>
|
||||
/// Id value
|
||||
/// </summary>
|
||||
@@ -113,7 +116,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public ReleaseDetails()
|
||||
{
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ReleaseDetails);
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -13,6 +13,9 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.Serials;
|
||||
|
||||
/// <summary>
|
||||
/// Digital serial 1 value
|
||||
/// </summary>
|
||||
@@ -106,7 +109,7 @@ namespace SabreTools.DatItems.Formats
|
||||
/// </summary>
|
||||
public Serials()
|
||||
{
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Serials);
|
||||
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -13,6 +13,9 @@ namespace SabreTools.DatItems.Formats
|
||||
{
|
||||
#region Fields
|
||||
|
||||
/// <inheritdoc>/>
|
||||
protected override ItemType ItemType => ItemType.SourceDetails;
|
||||
|
||||
/// <summary>
|
||||
/// Id value
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user