diff --git a/SabreTools.Core/DictionaryBaseExtensions.cs b/SabreTools.Core/DictionaryBaseExtensions.cs
index d0f0c1df..05475976 100644
--- a/SabreTools.Core/DictionaryBaseExtensions.cs
+++ b/SabreTools.Core/DictionaryBaseExtensions.cs
@@ -70,10 +70,27 @@ namespace SabreTools.Core
#region Conversion
+ ///
+ /// Convert a DatItem to a Rom
+ ///
+ public static Rom? ConvertToRom(this DatItem? self)
+ {
+ // If the DatItem is missing, we can't do anything
+ if (self == null)
+ return null;
+
+ return self switch
+ {
+ Disk diskSelf => ConvertToRom(diskSelf),
+ Media mediaSelf => ConvertToRom(mediaSelf),
+ _ => null,
+ };
+ }
+
///
/// Convert a Disk to a Rom
///
- public static Rom? ConvertToRom(this Disk? disk)
+ private static Rom? ConvertToRom(this Disk? disk)
{
// If the Disk is missing, we can't do anything
if (disk == null)
@@ -94,7 +111,7 @@ namespace SabreTools.Core
///
/// Convert a Media to a Rom
///
- public static Rom? ConvertToRom(this Media? media)
+ private static Rom? ConvertToRom(this Media? media)
{
// If the Media is missing, we can't do anything
if (media == null)
@@ -338,104 +355,29 @@ namespace SabreTools.Core
///
/// Returns if any hashes exist
///
- public static bool HasHashes(this Disk disk)
+ public static bool HasHashes(this DatItem self)
{
- bool md5Null = string.IsNullOrWhiteSpace(disk.ReadString(Disk.MD5Key));
- bool sha1Null = string.IsNullOrWhiteSpace(disk.ReadString(Disk.SHA1Key));
-
- return !md5Null || !sha1Null;
- }
-
- ///
- /// Returns if any hashes exist
- ///
- public static bool HasHashes(this Media media)
- {
- bool md5Null = string.IsNullOrWhiteSpace(media.ReadString(Media.MD5Key));
- bool sha1Null = string.IsNullOrWhiteSpace(media.ReadString(Media.SHA1Key));
- bool sha256Null = string.IsNullOrWhiteSpace(media.ReadString(Media.SHA256Key));
- bool spamsumNull = string.IsNullOrWhiteSpace(media.ReadString(Media.SpamSumKey));
-
- return !md5Null || !sha1Null || !sha256Null || !spamsumNull;
- }
-
- ///
- /// Returns if any hashes exist
- ///
- public static bool HasHashes(this Rom rom)
- {
- bool crcNull = string.IsNullOrWhiteSpace(rom.ReadString(Rom.CRCKey));
- bool md5Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.MD5Key));
- bool sha1Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SHA1Key));
- bool sha256Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SHA256Key));
- bool sha384Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SHA384Key));
- bool sha512Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SHA512Key));
- bool spamsumNull = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SpamSumKey));
-
- return !crcNull || !md5Null || !sha1Null || !sha256Null || !sha384Null || !sha512Null || !spamsumNull;
+ return self switch
+ {
+ Disk diskSelf => diskSelf.HasHashes(),
+ Media mediaSelf => mediaSelf.HasHashes(),
+ Rom romSelf => romSelf.HasHashes(),
+ _ => false,
+ };
}
///
/// Returns if all of the hashes are set to their 0-byte values or null
///
- public static bool HasZeroHash(this Disk disk)
+ public static bool HasZeroHash(this DatItem self)
{
- string? md5 = disk.ReadString(Disk.MD5Key);
- bool md5Null = string.IsNullOrWhiteSpace(md5) || string.Equals(md5, Constants.MD5Zero, StringComparison.OrdinalIgnoreCase);
-
- string? sha1 = disk.ReadString(Disk.SHA1Key);
- bool sha1Null = string.IsNullOrWhiteSpace(sha1) || string.Equals(sha1, Constants.SHA1Zero, StringComparison.OrdinalIgnoreCase);
-
- return md5Null && sha1Null;
- }
-
- ///
- /// Returns if all of the hashes are set to their 0-byte values or null
- ///
- public static bool HasZeroHash(this Media media)
- {
- string? md5 = media.ReadString(Media.MD5Key);
- bool md5Null = string.IsNullOrWhiteSpace(md5) || string.Equals(md5, Constants.MD5Zero, StringComparison.OrdinalIgnoreCase);
-
- string? sha1 = media.ReadString(Media.SHA1Key);
- bool sha1Null = string.IsNullOrWhiteSpace(sha1) || string.Equals(sha1, Constants.SHA1Zero, StringComparison.OrdinalIgnoreCase);
-
- string? sha256 = media.ReadString(Media.SHA256Key);
- bool sha256Null = string.IsNullOrWhiteSpace(sha256) || string.Equals(sha256, Constants.SHA256Zero, StringComparison.OrdinalIgnoreCase);
-
- string? spamsum = media.ReadString(Media.SpamSumKey);
- bool spamsumNull = string.IsNullOrWhiteSpace(spamsum) || string.Equals(spamsum, Constants.SpamSumZero, StringComparison.OrdinalIgnoreCase);
-
- return md5Null && sha1Null && sha256Null && spamsumNull;
- }
-
- ///
- /// Returns if all of the hashes are set to their 0-byte values or null
- ///
- public static bool HasZeroHash(this Rom rom)
- {
- string? crc = rom.ReadString(Rom.CRCKey);
- bool crcNull = string.IsNullOrWhiteSpace(crc) || string.Equals(crc, Constants.CRCZero, StringComparison.OrdinalIgnoreCase);
-
- string? md5 = rom.ReadString(Rom.MD5Key);
- bool md5Null = string.IsNullOrWhiteSpace(md5) || string.Equals(md5, Constants.MD5Zero, StringComparison.OrdinalIgnoreCase);
-
- string? sha1 = rom.ReadString(Rom.SHA1Key);
- bool sha1Null = string.IsNullOrWhiteSpace(sha1) || string.Equals(sha1, Constants.SHA1Zero, StringComparison.OrdinalIgnoreCase);
-
- string? sha256 = rom.ReadString(Rom.SHA256Key);
- bool sha256Null = string.IsNullOrWhiteSpace(sha256) || string.Equals(sha256, Constants.SHA256Zero, StringComparison.OrdinalIgnoreCase);
-
- string? sha384 = rom.ReadString(Rom.SHA384Key);
- bool sha384Null = string.IsNullOrWhiteSpace(sha384) || string.Equals(sha384, Constants.SHA384Zero, StringComparison.OrdinalIgnoreCase);
-
- string? sha512 = rom.ReadString(Rom.SHA512Key);
- bool sha512Null = string.IsNullOrWhiteSpace(sha512) || string.Equals(sha512, Constants.SHA512Zero, StringComparison.OrdinalIgnoreCase);
-
- string? spamsum = rom.ReadString(Rom.SpamSumKey);
- bool spamsumNull = string.IsNullOrWhiteSpace(spamsum) || string.Equals(spamsum, Constants.SpamSumZero, StringComparison.OrdinalIgnoreCase);
-
- return crcNull && md5Null && sha1Null && sha256Null && sha384Null && sha512Null && spamsumNull;
+ return self switch
+ {
+ Disk diskSelf => diskSelf.HasZeroHash(),
+ Media mediaSelf => mediaSelf.HasZeroHash(),
+ Rom romSelf => romSelf.HasZeroHash(),
+ _ => false,
+ };
}
///
@@ -501,14 +443,139 @@ namespace SabreTools.Core
return !crcNull || !md5Null || !sha1Null || !sha256Null || !sha384Null || !sha512Null || !spamsumNull;
}
+ ///
+ /// Returns if any hashes exist
+ ///
+ private static bool HasHashes(this Disk disk)
+ {
+ bool md5Null = string.IsNullOrWhiteSpace(disk.ReadString(Disk.MD5Key));
+ bool sha1Null = string.IsNullOrWhiteSpace(disk.ReadString(Disk.SHA1Key));
+
+ return !md5Null || !sha1Null;
+ }
+
+ ///
+ /// Returns if any hashes exist
+ ///
+ private static bool HasHashes(this Media media)
+ {
+ bool md5Null = string.IsNullOrWhiteSpace(media.ReadString(Media.MD5Key));
+ bool sha1Null = string.IsNullOrWhiteSpace(media.ReadString(Media.SHA1Key));
+ bool sha256Null = string.IsNullOrWhiteSpace(media.ReadString(Media.SHA256Key));
+ bool spamsumNull = string.IsNullOrWhiteSpace(media.ReadString(Media.SpamSumKey));
+
+ return !md5Null || !sha1Null || !sha256Null || !spamsumNull;
+ }
+
+ ///
+ /// Returns if any hashes exist
+ ///
+ private static bool HasHashes(this Rom rom)
+ {
+ bool crcNull = string.IsNullOrWhiteSpace(rom.ReadString(Rom.CRCKey));
+ bool md5Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.MD5Key));
+ bool sha1Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SHA1Key));
+ bool sha256Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SHA256Key));
+ bool sha384Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SHA384Key));
+ bool sha512Null = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SHA512Key));
+ bool spamsumNull = string.IsNullOrWhiteSpace(rom.ReadString(Rom.SpamSumKey));
+
+ return !crcNull || !md5Null || !sha1Null || !sha256Null || !sha384Null || !sha512Null || !spamsumNull;
+ }
+
+ ///
+ /// Returns if all of the hashes are set to their 0-byte values or null
+ ///
+ private static bool HasZeroHash(this Disk disk)
+ {
+ string? md5 = disk.ReadString(Disk.MD5Key);
+ bool md5Null = string.IsNullOrWhiteSpace(md5) || string.Equals(md5, Constants.MD5Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? sha1 = disk.ReadString(Disk.SHA1Key);
+ bool sha1Null = string.IsNullOrWhiteSpace(sha1) || string.Equals(sha1, Constants.SHA1Zero, StringComparison.OrdinalIgnoreCase);
+
+ return md5Null && sha1Null;
+ }
+
+ ///
+ /// Returns if all of the hashes are set to their 0-byte values or null
+ ///
+ private static bool HasZeroHash(this Media media)
+ {
+ string? md5 = media.ReadString(Media.MD5Key);
+ bool md5Null = string.IsNullOrWhiteSpace(md5) || string.Equals(md5, Constants.MD5Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? sha1 = media.ReadString(Media.SHA1Key);
+ bool sha1Null = string.IsNullOrWhiteSpace(sha1) || string.Equals(sha1, Constants.SHA1Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? sha256 = media.ReadString(Media.SHA256Key);
+ bool sha256Null = string.IsNullOrWhiteSpace(sha256) || string.Equals(sha256, Constants.SHA256Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? spamsum = media.ReadString(Media.SpamSumKey);
+ bool spamsumNull = string.IsNullOrWhiteSpace(spamsum) || string.Equals(spamsum, Constants.SpamSumZero, StringComparison.OrdinalIgnoreCase);
+
+ return md5Null && sha1Null && sha256Null && spamsumNull;
+ }
+
+ ///
+ /// Returns if all of the hashes are set to their 0-byte values or null
+ ///
+ private static bool HasZeroHash(this Rom rom)
+ {
+ string? crc = rom.ReadString(Rom.CRCKey);
+ bool crcNull = string.IsNullOrWhiteSpace(crc) || string.Equals(crc, Constants.CRCZero, StringComparison.OrdinalIgnoreCase);
+
+ string? md5 = rom.ReadString(Rom.MD5Key);
+ bool md5Null = string.IsNullOrWhiteSpace(md5) || string.Equals(md5, Constants.MD5Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? sha1 = rom.ReadString(Rom.SHA1Key);
+ bool sha1Null = string.IsNullOrWhiteSpace(sha1) || string.Equals(sha1, Constants.SHA1Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? sha256 = rom.ReadString(Rom.SHA256Key);
+ bool sha256Null = string.IsNullOrWhiteSpace(sha256) || string.Equals(sha256, Constants.SHA256Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? sha384 = rom.ReadString(Rom.SHA384Key);
+ bool sha384Null = string.IsNullOrWhiteSpace(sha384) || string.Equals(sha384, Constants.SHA384Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? sha512 = rom.ReadString(Rom.SHA512Key);
+ bool sha512Null = string.IsNullOrWhiteSpace(sha512) || string.Equals(sha512, Constants.SHA512Zero, StringComparison.OrdinalIgnoreCase);
+
+ string? spamsum = rom.ReadString(Rom.SpamSumKey);
+ bool spamsumNull = string.IsNullOrWhiteSpace(spamsum) || string.Equals(spamsum, Constants.SpamSumZero, StringComparison.OrdinalIgnoreCase);
+
+ return crcNull && md5Null && sha1Null && sha256Null && sha384Null && sha512Null && spamsumNull;
+ }
+
#endregion
#region Information Filling
+ ///
+ /// Fill any missing size and hash information from another DatItem
+ ///
+ public static void FillMissingHashes(this DatItem? self, DatItem? other)
+ {
+ if (self == null || other == null)
+ return;
+
+ switch (self, other)
+ {
+ case (Disk diskSelf, Disk diskOther):
+ FillMissingHashes(diskSelf, diskOther);
+ break;
+ case (Media mediaSelf, Media mediaOther):
+ FillMissingHashes(mediaSelf, mediaOther);
+ break;
+ case (Rom romSelf, Rom romOther):
+ FillMissingHashes(romSelf, romOther);
+ break;
+ };
+ }
+
///
/// Fill any missing size and hash information from another Disk
///
- public static void FillMissingHashes(this Disk? self, Disk? other)
+ private static void FillMissingHashes(this Disk? self, Disk? other)
{
if (self == null || other == null)
return;
@@ -527,7 +594,7 @@ namespace SabreTools.Core
///
/// Fill any missing size and hash information from another Media
///
- public static void FillMissingHashes(this Media? self, Media? other)
+ private static void FillMissingHashes(this Media? self, Media? other)
{
if (self == null || other == null)
return;
@@ -556,7 +623,7 @@ namespace SabreTools.Core
///
/// Fill any missing size and hash information from another Rom
///
- public static void FillMissingHashes(this Rom? self, Rom? other)
+ private static void FillMissingHashes(this Rom? self, Rom? other)
{
if (self == null || other == null)
return;
@@ -609,7 +676,24 @@ namespace SabreTools.Core
///
/// Get unique duplicate suffix on name collision
///
- public static string GetDuplicateSuffix(this Disk? self)
+ public static string GetDuplicateSuffix(this DatItem? self)
+ {
+ if (self == null)
+ return string.Empty;
+
+ return self switch
+ {
+ Disk diskSelf => GetDuplicateSuffix(diskSelf),
+ Media mediaSelf => GetDuplicateSuffix(mediaSelf),
+ Rom romSelf => GetDuplicateSuffix(romSelf),
+ _ => "_1",
+ };
+ }
+
+ ///
+ /// Get unique duplicate suffix on name collision
+ ///
+ private static string GetDuplicateSuffix(this Disk? self)
{
if (self == null)
return string.Empty;
@@ -628,7 +712,7 @@ namespace SabreTools.Core
///
/// Get unique duplicate suffix on name collision
///
- public static string GetDuplicateSuffix(this Media? self)
+ private static string GetDuplicateSuffix(this Media? self)
{
if (self == null)
return string.Empty;
@@ -655,7 +739,7 @@ namespace SabreTools.Core
///
/// Get unique duplicate suffix on name collision
///
- public static string GetDuplicateSuffix(this Rom? self)
+ private static string GetDuplicateSuffix(this Rom? self)
{
if (self == null)
return string.Empty;
diff --git a/SabreTools.DatItems/DatItem.cs b/SabreTools.DatItems/DatItem.cs
index 392367ef..24ce3eb3 100644
--- a/SabreTools.DatItems/DatItem.cs
+++ b/SabreTools.DatItems/DatItem.cs
@@ -70,13 +70,28 @@ namespace SabreTools.DatItems
[JsonProperty("itemtype")]
[JsonConverter(typeof(StringEnumConverter))]
[XmlElement("itemtype")]
- public ItemType ItemType { get; set; }
+ public ItemType ItemType
+ {
+ get => _internal.ReadString(Models.Internal.DatItem.TypeKey).AsItemType();
+ set => _internal[Models.Internal.DatItem.TypeKey] = value.FromItemType();
+ }
///
/// Duplicate type when compared to another item
///
+ /// Hack on top of internal model
[JsonIgnore, XmlIgnore]
- public DupeType DupeType { get; set; }
+ public DupeType DupeType
+ {
+ get => _internal.Read("DUPETYPE") ?? 0;
+ set => _internal["DUPETYPE"] = value;
+ }
+
+ ///
+ /// Internal model wrapped by this DatItem
+ ///
+ [JsonIgnore, XmlIgnore]
+ protected Models.Internal.DatItem _internal;
#endregion
@@ -85,8 +100,13 @@ namespace SabreTools.DatItems
///
/// Machine values
///
+ /// Hack on top of internal model
[JsonIgnore, XmlIgnore]
- public Machine? Machine { get; set; } = new Machine();
+ public Machine? Machine
+ {
+ get => _internal.Read("MACHINE") ?? new Machine();
+ set => _internal["MACHINE"] = value;
+ }
#endregion
@@ -95,14 +115,24 @@ namespace SabreTools.DatItems
///
/// Source information
///
+ /// Hack on top of internal model
[JsonIgnore, XmlIgnore]
- public Source? Source { get; set; } = new Source();
+ public Source? Source
+ {
+ get => _internal.Read("SOURCE") ?? new Source();
+ set => _internal["SOURCE"] = value;
+ }
///
/// Flag if item should be removed
///
+ /// Hack on top of internal model
[JsonIgnore, XmlIgnore]
- public bool Remove { get; set; }
+ public bool Remove
+ {
+ get => _internal.ReadBool("REMOVE") ?? false;
+ set => _internal["REMOVE"] = value;
+ }
#endregion // Metadata information
@@ -149,6 +179,7 @@ namespace SabreTools.DatItems
///
public DatItem()
{
+ _internal = new Models.Internal.Blank();
logger = new Logger(this);
}
@@ -286,7 +317,15 @@ namespace SabreTools.DatItems
///
/// DatItem to use as a baseline
/// True if the items are duplicates, false otherwise
- public abstract bool Equals(DatItem? other);
+ public virtual bool Equals(DatItem? other)
+ {
+ // If we don't have a matched type, return false
+ if (ItemType != other?.ItemType)
+ return false;
+
+ // Compare the internal models
+ return _internal.EqualTo(other._internal);
+ }
///
/// Return the duplicate status of two items
diff --git a/SabreTools.DatItems/Formats/Adjuster.cs b/SabreTools.DatItems/Formats/Adjuster.cs
index d3a47d6f..d16df1e9 100644
--- a/SabreTools.DatItems/Formats/Adjuster.cs
+++ b/SabreTools.DatItems/Formats/Adjuster.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _adjuster.ReadString(Models.Internal.Adjuster.NameKey);
- set => _adjuster[Models.Internal.Adjuster.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Adjuster.NameKey);
+ set => _internal[Models.Internal.Adjuster.NameKey] = value;
}
///
@@ -30,8 +30,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("default", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("default")]
public bool? Default
{
- get => _adjuster.ReadBool(Models.Internal.Adjuster.DefaultKey);
- set => _adjuster[Models.Internal.Adjuster.DefaultKey] = value;
+ get => _internal.ReadBool(Models.Internal.Adjuster.DefaultKey);
+ set => _internal[Models.Internal.Adjuster.DefaultKey] = value;
}
[JsonIgnore]
@@ -43,19 +43,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("conditions", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("conditions")]
public List? Conditions
{
- get => _adjuster.Read(Models.Internal.Adjuster.ConditionKey)?.ToList();
- set => _adjuster[Models.Internal.Adjuster.ConditionKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Adjuster.ConditionKey)?.ToList();
+ set => _internal[Models.Internal.Adjuster.ConditionKey] = value?.ToArray();
}
[JsonIgnore]
public bool ConditionsSpecified { get { return Conditions != null && Conditions.Count > 0; } }
- ///
- /// Internal Adjuster model
- ///
- [JsonIgnore]
- private Models.Internal.Adjuster _adjuster = new();
-
#endregion
#region Accessors
@@ -75,6 +69,7 @@ namespace SabreTools.DatItems.Formats
///
public Adjuster()
{
+ _internal = new Models.Internal.Adjuster();
Name = string.Empty;
ItemType = ItemType.Adjuster;
}
@@ -95,25 +90,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _adjuster = this._adjuster?.Clone() as Models.Internal.Adjuster ?? new Models.Internal.Adjuster(),
+ _internal = this._internal?.Clone() as Models.Internal.Adjuster ?? new Models.Internal.Adjuster(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Adjuster, return false
- if (ItemType != other?.ItemType || other is not Adjuster otherInternal)
- return false;
-
- // Compare the internal models
- return _adjuster.EqualTo(otherInternal._adjuster);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Analog.cs b/SabreTools.DatItems/Formats/Analog.cs
index b1c1cb93..7878ff60 100644
--- a/SabreTools.DatItems/Formats/Analog.cs
+++ b/SabreTools.DatItems/Formats/Analog.cs
@@ -18,16 +18,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("mask", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("mask")]
public string? Mask
{
- get => _analog.ReadString(Models.Internal.Analog.MaskKey);
- set => _analog[Models.Internal.Analog.MaskKey] = value;
+ get => _internal.ReadString(Models.Internal.Analog.MaskKey);
+ set => _internal[Models.Internal.Analog.MaskKey] = value;
}
- ///
- /// Internal Analog model
- ///
- [JsonIgnore]
- private Models.Internal.Analog _analog = new();
-
#endregion
#region Constructors
@@ -37,6 +31,7 @@ namespace SabreTools.DatItems.Formats
///
public Analog()
{
+ _internal = new Models.Internal.Analog();
ItemType = ItemType.Analog;
}
@@ -56,25 +51,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _analog = this._analog?.Clone() as Models.Internal.Analog ?? new Models.Internal.Analog(),
+ _internal = this._internal?.Clone() as Models.Internal.Analog ?? new Models.Internal.Analog(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Analog, return false
- if (ItemType != other?.ItemType || other is not Analog otherInternal)
- return false;
-
- // Compare the internal models
- return _analog.EqualTo(otherInternal._analog);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Archive.cs b/SabreTools.DatItems/Formats/Archive.cs
index 0c946f5e..e12a96aa 100644
--- a/SabreTools.DatItems/Formats/Archive.cs
+++ b/SabreTools.DatItems/Formats/Archive.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _archive.ReadString(Models.Internal.Archive.NameKey);
- set => _archive[Models.Internal.Archive.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Archive.NameKey);
+ set => _internal[Models.Internal.Archive.NameKey] = value;
}
///
@@ -87,12 +87,6 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("categories"), XmlElement("categories")]
public string? Categories { get; set; }
- ///
- /// Internal Archive model
- ///
- [JsonIgnore]
- private Models.Internal.Archive _archive = new();
-
#endregion
#region Accessors
@@ -112,6 +106,7 @@ namespace SabreTools.DatItems.Formats
///
public Archive()
{
+ _internal = new Models.Internal.Archive();
Name = string.Empty;
ItemType = ItemType.Archive;
}
@@ -132,25 +127,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _archive = this._archive?.Clone() as Models.Internal.Archive ?? new Models.Internal.Archive(),
+ _internal = this._internal?.Clone() as Models.Internal.Archive ?? new Models.Internal.Archive(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Archive, return false
- if (ItemType != other?.ItemType || other is not Archive otherInternal)
- return false;
-
- // Compare the internal models
- return _archive.EqualTo(otherInternal._archive);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Auxiliary.cs b/SabreTools.DatItems/Formats/Auxiliary.cs
index fed1f72a..120d2759 100644
--- a/SabreTools.DatItems/Formats/Auxiliary.cs
+++ b/SabreTools.DatItems/Formats/Auxiliary.cs
@@ -19,22 +19,22 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("value"), XmlElement("value")]
public bool? Value
{
- get => _original.ReadBool(Models.Internal.Original.ValueKey);
- set => _original[Models.Internal.Original.ValueKey] = value;
+ get => _internal.ReadBool(Models.Internal.Original.ValueKey);
+ set => _internal[Models.Internal.Original.ValueKey] = value;
}
[JsonProperty("content"), XmlElement("content")]
public string? Content
{
- get => _original.ReadString(Models.Internal.Original.ContentKey);
- set => _original[Models.Internal.Original.ContentKey] = value;
+ get => _internal.ReadString(Models.Internal.Original.ContentKey);
+ set => _internal[Models.Internal.Original.ContentKey] = value;
}
///
/// Internal Original model
///
[JsonIgnore]
- private readonly Models.Internal.Original _original = new();
+ private readonly Models.Internal.Original _internal = new();
}
#endregion
diff --git a/SabreTools.DatItems/Formats/BiosSet.cs b/SabreTools.DatItems/Formats/BiosSet.cs
index 8bf80800..dfd0123b 100644
--- a/SabreTools.DatItems/Formats/BiosSet.cs
+++ b/SabreTools.DatItems/Formats/BiosSet.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _biosSet.ReadString(Models.Internal.BiosSet.NameKey);
- set => _biosSet[Models.Internal.BiosSet.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.BiosSet.NameKey);
+ set => _internal[Models.Internal.BiosSet.NameKey] = value;
}
///
@@ -28,8 +28,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("description", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("description")]
public string? Description
{
- get => _biosSet.ReadString(Models.Internal.BiosSet.DescriptionKey);
- set => _biosSet[Models.Internal.BiosSet.DescriptionKey] = value;
+ get => _internal.ReadString(Models.Internal.BiosSet.DescriptionKey);
+ set => _internal[Models.Internal.BiosSet.DescriptionKey] = value;
}
///
@@ -38,19 +38,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("default", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("default")]
public bool? Default
{
- get => _biosSet.ReadBool(Models.Internal.BiosSet.DefaultKey);
- set => _biosSet[Models.Internal.BiosSet.DefaultKey] = value;
+ get => _internal.ReadBool(Models.Internal.BiosSet.DefaultKey);
+ set => _internal[Models.Internal.BiosSet.DefaultKey] = value;
}
[JsonIgnore]
public bool DefaultSpecified { get { return Default != null; } }
- ///
- /// Internal BiosSet model
- ///
- [JsonIgnore]
- private Models.Internal.BiosSet _biosSet = new();
-
#endregion
#region Accessors
@@ -70,6 +64,7 @@ namespace SabreTools.DatItems.Formats
///
public BiosSet()
{
+ _internal = new Models.Internal.BiosSet();
Name = string.Empty;
ItemType = ItemType.BiosSet;
}
@@ -90,25 +85,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _biosSet = this._biosSet?.Clone() as Models.Internal.BiosSet ?? new Models.Internal.BiosSet(),
+ _internal = this._internal?.Clone() as Models.Internal.BiosSet ?? new Models.Internal.BiosSet(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a BiosSet, return false
- if (ItemType != other?.ItemType || other is not BiosSet otherInternal)
- return false;
-
- // Compare the internal models
- return _biosSet.EqualTo(otherInternal._biosSet);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Chip.cs b/SabreTools.DatItems/Formats/Chip.cs
index 85237c70..e3902a6d 100644
--- a/SabreTools.DatItems/Formats/Chip.cs
+++ b/SabreTools.DatItems/Formats/Chip.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _chip.ReadString(Models.Internal.Chip.NameKey);
- set => _chip[Models.Internal.Chip.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Chip.NameKey);
+ set => _internal[Models.Internal.Chip.NameKey] = value;
}
///
@@ -30,8 +30,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tag")]
public string? Tag
{
- get => _chip.ReadString(Models.Internal.Chip.TagKey);
- set => _chip[Models.Internal.Chip.TagKey] = value;
+ get => _internal.ReadString(Models.Internal.Chip.TagKey);
+ set => _internal[Models.Internal.Chip.TagKey] = value;
}
///
@@ -41,8 +41,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public ChipType ChipType
{
- get => _chip.ReadString(Models.Internal.Chip.ChipTypeKey).AsChipType();
- set => _chip[Models.Internal.Chip.ChipTypeKey] = value.FromChipType();
+ get => _internal.ReadString(Models.Internal.Chip.ChipTypeKey).AsChipType();
+ set => _internal[Models.Internal.Chip.ChipTypeKey] = value.FromChipType();
}
[JsonIgnore]
@@ -54,19 +54,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("clock", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("clock")]
public long? Clock
{
- get => _chip.ReadLong(Models.Internal.Chip.ClockKey);
- set => _chip[Models.Internal.Chip.ClockKey] = value;
+ get => _internal.ReadLong(Models.Internal.Chip.ClockKey);
+ set => _internal[Models.Internal.Chip.ClockKey] = value;
}
[JsonIgnore]
public bool ClockSpecified { get { return Clock != null; } }
- ///
- /// Internal Chip model
- ///
- [JsonIgnore]
- private Models.Internal.Chip _chip = new();
-
#endregion
#region Accessors
@@ -86,6 +80,7 @@ namespace SabreTools.DatItems.Formats
///
public Chip()
{
+ _internal = new Models.Internal.Chip();
Name = string.Empty;
ItemType = ItemType.Chip;
}
@@ -106,25 +101,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _chip = this._chip?.Clone() as Models.Internal.Chip ?? new Models.Internal.Chip(),
+ _internal = this._internal?.Clone() as Models.Internal.Chip ?? new Models.Internal.Chip(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Chip, return false
- if (ItemType != other?.ItemType || other is not Chip otherInternal)
- return false;
-
- // Compare the internal models
- return _chip.EqualTo(otherInternal._chip);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Condition.cs b/SabreTools.DatItems/Formats/Condition.cs
index 7a452542..ca340dbd 100644
--- a/SabreTools.DatItems/Formats/Condition.cs
+++ b/SabreTools.DatItems/Formats/Condition.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tag")]
public string? Tag
{
- get => _condition.ReadString(Models.Internal.Condition.TagKey);
- set => _condition[Models.Internal.Condition.TagKey] = value;
+ get => _internal.ReadString(Models.Internal.Condition.TagKey);
+ set => _internal[Models.Internal.Condition.TagKey] = value;
}
///
@@ -30,8 +30,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("mask", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("mask")]
public string? Mask
{
- get => _condition.ReadString(Models.Internal.Condition.MaskKey);
- set => _condition[Models.Internal.Condition.MaskKey] = value;
+ get => _internal.ReadString(Models.Internal.Condition.MaskKey);
+ set => _internal[Models.Internal.Condition.MaskKey] = value;
}
///
@@ -41,8 +41,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public Relation Relation
{
- get => _condition.ReadString(Models.Internal.Condition.RelationKey).AsRelation();
- set => _condition[Models.Internal.Condition.RelationKey] = value.FromRelation();
+ get => _internal.ReadString(Models.Internal.Condition.RelationKey).AsRelation();
+ set => _internal[Models.Internal.Condition.RelationKey] = value.FromRelation();
}
[JsonIgnore]
@@ -54,16 +54,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("value", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("value")]
public string? Value
{
- get => _condition.ReadString(Models.Internal.Condition.ValueKey);
- set => _condition[Models.Internal.Condition.ValueKey] = value;
+ get => _internal.ReadString(Models.Internal.Condition.ValueKey);
+ set => _internal[Models.Internal.Condition.ValueKey] = value;
}
- ///
- /// Internal Condition model
- ///
- [JsonIgnore]
- private Models.Internal.Condition _condition = new();
-
#endregion
#region Constructors
@@ -73,6 +67,7 @@ namespace SabreTools.DatItems.Formats
///
public Condition()
{
+ _internal = new Models.Internal.Condition();
ItemType = ItemType.Condition;
}
@@ -92,25 +87,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _condition = this._condition?.Clone() as Models.Internal.Condition ?? new Models.Internal.Condition(),
+ _internal = this._internal?.Clone() as Models.Internal.Condition ?? new Models.Internal.Condition(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Condition, return false
- if (ItemType != other?.ItemType || other is not Condition otherInternal)
- return false;
-
- // Compare the internal models
- return _condition.EqualTo(otherInternal._condition);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/ConfLocation.cs b/SabreTools.DatItems/Formats/ConfLocation.cs
index 2400f91e..01d24452 100644
--- a/SabreTools.DatItems/Formats/ConfLocation.cs
+++ b/SabreTools.DatItems/Formats/ConfLocation.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _confLocation.ReadString(Models.Internal.ConfLocation.NameKey);
- set => _confLocation[Models.Internal.ConfLocation.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.ConfLocation.NameKey);
+ set => _internal[Models.Internal.ConfLocation.NameKey] = value;
}
///
@@ -28,8 +28,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("number", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("number")]
public long? Number
{
- get => _confLocation.ReadLong(Models.Internal.ConfLocation.NumberKey);
- set => _confLocation[Models.Internal.ConfLocation.NumberKey] = value;
+ get => _internal.ReadLong(Models.Internal.ConfLocation.NumberKey);
+ set => _internal[Models.Internal.ConfLocation.NumberKey] = value;
}
[JsonIgnore]
@@ -41,19 +41,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("inverted", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("inverted")]
public bool? Inverted
{
- get => _confLocation.ReadBool(Models.Internal.ConfLocation.InvertedKey);
- set => _confLocation[Models.Internal.ConfLocation.InvertedKey] = value;
+ get => _internal.ReadBool(Models.Internal.ConfLocation.InvertedKey);
+ set => _internal[Models.Internal.ConfLocation.InvertedKey] = value;
}
[JsonIgnore]
public bool InvertedSpecified { get { return Inverted != null; } }
- ///
- /// Internal ConfLocation model
- ///
- [JsonIgnore]
- private Models.Internal.ConfLocation _confLocation = new();
-
#endregion
#region Accessors
@@ -73,6 +67,7 @@ namespace SabreTools.DatItems.Formats
///
public ConfLocation()
{
+ _internal = new Models.Internal.ConfLocation();
Name = string.Empty;
ItemType = ItemType.ConfLocation;
}
@@ -93,25 +88,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _confLocation = this._confLocation?.Clone() as Models.Internal.ConfLocation ?? new Models.Internal.ConfLocation(),
+ _internal = this._internal?.Clone() as Models.Internal.ConfLocation ?? new Models.Internal.ConfLocation(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a v, return false
- if (ItemType != other?.ItemType || other is not ConfLocation otherInternal)
- return false;
-
- // Compare the internal models
- return _confLocation.EqualTo(otherInternal._confLocation);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/ConfSetting.cs b/SabreTools.DatItems/Formats/ConfSetting.cs
index d5b40546..825ffcdb 100644
--- a/SabreTools.DatItems/Formats/ConfSetting.cs
+++ b/SabreTools.DatItems/Formats/ConfSetting.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _confSetting.ReadString(Models.Internal.ConfSetting.NameKey);
- set => _confSetting[Models.Internal.ConfSetting.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.ConfSetting.NameKey);
+ set => _internal[Models.Internal.ConfSetting.NameKey] = value;
}
///
@@ -30,8 +30,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("value", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("value")]
public string? Value
{
- get => _confSetting.ReadString(Models.Internal.ConfSetting.ValueKey);
- set => _confSetting[Models.Internal.ConfSetting.ValueKey] = value;
+ get => _internal.ReadString(Models.Internal.ConfSetting.ValueKey);
+ set => _internal[Models.Internal.ConfSetting.ValueKey] = value;
}
///
@@ -40,8 +40,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("default", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("default")]
public bool? Default
{
- get => _confSetting.ReadBool(Models.Internal.ConfSetting.DefaultKey);
- set => _confSetting[Models.Internal.ConfSetting.DefaultKey] = value;
+ get => _internal.ReadBool(Models.Internal.ConfSetting.DefaultKey);
+ set => _internal[Models.Internal.ConfSetting.DefaultKey] = value;
}
[JsonIgnore]
@@ -53,19 +53,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("conditions", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("conditions")]
public List? Conditions
{
- get => _confSetting.Read(Models.Internal.ConfSetting.ConditionKey)?.ToList();
- set => _confSetting[Models.Internal.ConfSetting.ConditionKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.ConfSetting.ConditionKey)?.ToList();
+ set => _internal[Models.Internal.ConfSetting.ConditionKey] = value?.ToArray();
}
[JsonIgnore]
public bool ConditionsSpecified { get { return Conditions != null && Conditions.Count > 0; } }
- ///
- /// Internal ConfSetting model
- ///
- [JsonIgnore]
- private Models.Internal.ConfSetting _confSetting = new();
-
#endregion
#region Accessors
@@ -85,6 +79,7 @@ namespace SabreTools.DatItems.Formats
///
public ConfSetting()
{
+ _internal = new Models.Internal.ConfSetting();
Name = string.Empty;
ItemType = ItemType.ConfSetting;
}
@@ -105,25 +100,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _confSetting = this._confSetting?.Clone() as Models.Internal.ConfSetting ?? new Models.Internal.ConfSetting(),
+ _internal = this._internal?.Clone() as Models.Internal.ConfSetting ?? new Models.Internal.ConfSetting(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a ConfSetting, return false
- if (ItemType != other?.ItemType || other is not ConfSetting otherInternal)
- return false;
-
- // Compare the internal models
- return _confSetting.EqualTo(otherInternal._confSetting);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Configuration.cs b/SabreTools.DatItems/Formats/Configuration.cs
index dc0e2f41..d237de43 100644
--- a/SabreTools.DatItems/Formats/Configuration.cs
+++ b/SabreTools.DatItems/Formats/Configuration.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _configuration.ReadString(Models.Internal.Configuration.NameKey);
- set => _configuration[Models.Internal.Configuration.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Configuration.NameKey);
+ set => _internal[Models.Internal.Configuration.NameKey] = value;
}
///
@@ -30,8 +30,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tag")]
public string? Tag
{
- get => _configuration.ReadString(Models.Internal.Configuration.TagKey);
- set => _configuration[Models.Internal.Configuration.TagKey] = value;
+ get => _internal.ReadString(Models.Internal.Configuration.TagKey);
+ set => _internal[Models.Internal.Configuration.TagKey] = value;
}
///
@@ -40,8 +40,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("mask", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("mask")]
public string? Mask
{
- get => _configuration.ReadString(Models.Internal.Configuration.MaskKey);
- set => _configuration[Models.Internal.Configuration.MaskKey] = value;
+ get => _internal.ReadString(Models.Internal.Configuration.MaskKey);
+ set => _internal[Models.Internal.Configuration.MaskKey] = value;
}
///
@@ -50,8 +50,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("conditions", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("conditions")]
public List? Conditions
{
- get => _configuration.Read(Models.Internal.Configuration.ConditionKey)?.ToList();
- set => _configuration[Models.Internal.Configuration.ConditionKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Configuration.ConditionKey)?.ToList();
+ set => _internal[Models.Internal.Configuration.ConditionKey] = value?.ToArray();
}
[JsonIgnore]
@@ -63,8 +63,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("locations", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("locations")]
public List? Locations
{
- get => _configuration.Read(Models.Internal.Configuration.ConfLocationKey)?.ToList();
- set => _configuration[Models.Internal.Configuration.ConfLocationKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Configuration.ConfLocationKey)?.ToList();
+ set => _internal[Models.Internal.Configuration.ConfLocationKey] = value?.ToArray();
}
[JsonIgnore]
@@ -76,19 +76,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("settings", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("settings")]
public List? Settings
{
- get => _configuration.Read>(Models.Internal.Configuration.ConfSettingKey);
- set => _configuration[Models.Internal.Configuration.ConfSettingKey] = value;
+ get => _internal.Read>(Models.Internal.Configuration.ConfSettingKey);
+ set => _internal[Models.Internal.Configuration.ConfSettingKey] = value;
}
[JsonIgnore]
public bool SettingsSpecified { get { return Settings != null && Settings.Count > 0; } }
- ///
- /// Internal Configuration model
- ///
- [JsonIgnore]
- private Models.Internal.Configuration _configuration = new();
-
#endregion
#region Accessors
@@ -108,6 +102,7 @@ namespace SabreTools.DatItems.Formats
///
public Configuration()
{
+ _internal = new Models.Internal.Configuration();
Name = string.Empty;
ItemType = ItemType.Configuration;
}
@@ -128,25 +123,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _configuration = this._configuration?.Clone() as Models.Internal.Configuration ?? new Models.Internal.Configuration(),
+ _internal = this._internal?.Clone() as Models.Internal.Configuration ?? new Models.Internal.Configuration(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Configuration, return false
- if (ItemType != other?.ItemType || other is not Configuration otherInternal)
- return false;
-
- // Compare the internal models
- return _configuration.EqualTo(otherInternal._configuration);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Control.cs b/SabreTools.DatItems/Formats/Control.cs
index dd0afb71..e40eceb6 100644
--- a/SabreTools.DatItems/Formats/Control.cs
+++ b/SabreTools.DatItems/Formats/Control.cs
@@ -21,8 +21,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public ControlType ControlType
{
- get => _control.ReadString(Models.Internal.Control.ControlTypeKey).AsControlType();
- set => _control[Models.Internal.Control.ControlTypeKey] = value.FromControlType();
+ get => _internal.ReadString(Models.Internal.Control.ControlTypeKey).AsControlType();
+ set => _internal[Models.Internal.Control.ControlTypeKey] = value.FromControlType();
}
[JsonIgnore]
@@ -34,8 +34,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("player", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("player")]
public long? Player
{
- get => _control.ReadLong(Models.Internal.Control.PlayerKey);
- set => _control[Models.Internal.Control.PlayerKey] = value;
+ get => _internal.ReadLong(Models.Internal.Control.PlayerKey);
+ set => _internal[Models.Internal.Control.PlayerKey] = value;
}
[JsonIgnore]
@@ -47,8 +47,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("buttons", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("buttons")]
public long? Buttons
{
- get => _control.ReadLong(Models.Internal.Control.ButtonsKey);
- set => _control[Models.Internal.Control.ButtonsKey] = value;
+ get => _internal.ReadLong(Models.Internal.Control.ButtonsKey);
+ set => _internal[Models.Internal.Control.ButtonsKey] = value;
}
[JsonIgnore]
@@ -60,8 +60,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("reqbuttons", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("reqbuttons")]
public long? RequiredButtons
{
- get => _control.ReadLong(Models.Internal.Control.ReqButtonsKey);
- set => _control[Models.Internal.Control.ReqButtonsKey] = value;
+ get => _internal.ReadLong(Models.Internal.Control.ReqButtonsKey);
+ set => _internal[Models.Internal.Control.ReqButtonsKey] = value;
}
[JsonIgnore]
@@ -73,8 +73,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("minimum", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("minimum")]
public long? Minimum
{
- get => _control.ReadLong(Models.Internal.Control.MinimumKey);
- set => _control[Models.Internal.Control.MinimumKey] = value;
+ get => _internal.ReadLong(Models.Internal.Control.MinimumKey);
+ set => _internal[Models.Internal.Control.MinimumKey] = value;
}
[JsonIgnore]
@@ -86,8 +86,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("maximum", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("maximum")]
public long? Maximum
{
- get => _control.ReadLong(Models.Internal.Control.MaximumKey);
- set => _control[Models.Internal.Control.MaximumKey] = value;
+ get => _internal.ReadLong(Models.Internal.Control.MaximumKey);
+ set => _internal[Models.Internal.Control.MaximumKey] = value;
}
[JsonIgnore]
@@ -99,8 +99,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sensitivity", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sensitivity")]
public long? Sensitivity
{
- get => _control.ReadLong(Models.Internal.Control.SensitivityKey);
- set => _control[Models.Internal.Control.SensitivityKey] = value;
+ get => _internal.ReadLong(Models.Internal.Control.SensitivityKey);
+ set => _internal[Models.Internal.Control.SensitivityKey] = value;
}
[JsonIgnore]
@@ -112,8 +112,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("keydelta", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("keydelta")]
public long? KeyDelta
{
- get => _control.ReadLong(Models.Internal.Control.KeyDeltaKey);
- set => _control[Models.Internal.Control.KeyDeltaKey] = value;
+ get => _internal.ReadLong(Models.Internal.Control.KeyDeltaKey);
+ set => _internal[Models.Internal.Control.KeyDeltaKey] = value;
}
[JsonIgnore]
@@ -125,8 +125,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("reverse", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("reverse")]
public bool? Reverse
{
- get => _control.ReadBool(Models.Internal.Control.ReverseKey);
- set => _control[Models.Internal.Control.ReverseKey] = value;
+ get => _internal.ReadBool(Models.Internal.Control.ReverseKey);
+ set => _internal[Models.Internal.Control.ReverseKey] = value;
}
[JsonIgnore]
@@ -138,8 +138,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("ways", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("ways")]
public string? Ways
{
- get => _control.ReadString(Models.Internal.Control.WaysKey);
- set => _control[Models.Internal.Control.WaysKey] = value;
+ get => _internal.ReadString(Models.Internal.Control.WaysKey);
+ set => _internal[Models.Internal.Control.WaysKey] = value;
}
///
@@ -148,8 +148,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("ways2", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("ways2")]
public string? Ways2
{
- get => _control.ReadString(Models.Internal.Control.Ways2Key);
- set => _control[Models.Internal.Control.Ways2Key] = value;
+ get => _internal.ReadString(Models.Internal.Control.Ways2Key);
+ set => _internal[Models.Internal.Control.Ways2Key] = value;
}
///
@@ -158,16 +158,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("ways3", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("ways3")]
public string? Ways3
{
- get => _control.ReadString(Models.Internal.Control.Ways3Key);
- set => _control[Models.Internal.Control.Ways3Key] = value;
+ get => _internal.ReadString(Models.Internal.Control.Ways3Key);
+ set => _internal[Models.Internal.Control.Ways3Key] = value;
}
- ///
- /// Internal Control model
- ///
- [JsonIgnore]
- private Models.Internal.Control _control = new();
-
#endregion
#region Constructors
@@ -177,6 +171,7 @@ namespace SabreTools.DatItems.Formats
///
public Control()
{
+ _internal = new Models.Internal.Control();
ItemType = ItemType.Control;
}
@@ -196,25 +191,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _control = this._control?.Clone() as Models.Internal.Control ?? new Models.Internal.Control(),
+ _internal = this._internal?.Clone() as Models.Internal.Control ?? new Models.Internal.Control(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Control, return false
- if (ItemType != other?.ItemType || other is not Control otherInternal)
- return false;
-
- // Compare the internal models
- return _control.EqualTo(otherInternal._control);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/DataArea.cs b/SabreTools.DatItems/Formats/DataArea.cs
index cd2a414b..d9f20b57 100644
--- a/SabreTools.DatItems/Formats/DataArea.cs
+++ b/SabreTools.DatItems/Formats/DataArea.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("name")]
public string? Name
{
- get => _dataArea.ReadString(Models.Internal.DataArea.NameKey);
- set => _dataArea[Models.Internal.DataArea.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.DataArea.NameKey);
+ set => _internal[Models.Internal.DataArea.NameKey] = value;
}
///
@@ -30,8 +30,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("size", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("size")]
public long? Size
{
- get => _dataArea.ReadLong(Models.Internal.DataArea.SizeKey);
- set => _dataArea[Models.Internal.DataArea.SizeKey] = value;
+ get => _internal.ReadLong(Models.Internal.DataArea.SizeKey);
+ set => _internal[Models.Internal.DataArea.SizeKey] = value;
}
[JsonIgnore]
@@ -43,8 +43,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("width", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("width")]
public long? Width
{
- get => _dataArea.ReadLong(Models.Internal.DataArea.WidthKey);
- set => _dataArea[Models.Internal.DataArea.WidthKey] = value;
+ get => _internal.ReadLong(Models.Internal.DataArea.WidthKey);
+ set => _internal[Models.Internal.DataArea.WidthKey] = value;
}
[JsonIgnore]
@@ -56,19 +56,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("endianness", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("endianness")]
public Endianness Endianness
{
- get => _dataArea.ReadString(Models.Internal.DataArea.WidthKey).AsEndianness();
- set => _dataArea[Models.Internal.DataArea.WidthKey] = value.FromEndianness();
+ get => _internal.ReadString(Models.Internal.DataArea.WidthKey).AsEndianness();
+ set => _internal[Models.Internal.DataArea.WidthKey] = value.FromEndianness();
}
[JsonIgnore]
public bool EndiannessSpecified { get { return Endianness != Endianness.NULL; } }
- ///
- /// Internal DataArea model
- ///
- [JsonIgnore]
- private Models.Internal.DataArea _dataArea = new();
-
#endregion
#region Accessors
@@ -88,6 +82,7 @@ namespace SabreTools.DatItems.Formats
///
public DataArea()
{
+ _internal = new Models.Internal.DataArea();
Name = string.Empty;
ItemType = ItemType.DataArea;
}
@@ -108,25 +103,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _dataArea = this._dataArea?.Clone() as Models.Internal.DataArea ?? new Models.Internal.DataArea(),
+ _internal = this._internal?.Clone() as Models.Internal.DataArea ?? new Models.Internal.DataArea(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a DataArea, return false
- if (ItemType != other?.ItemType || other is not DataArea otherInternal)
- return false;
-
- // Compare the internal models
- return _dataArea.EqualTo(otherInternal._dataArea);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Device.cs b/SabreTools.DatItems/Formats/Device.cs
index 750548dd..74566311 100644
--- a/SabreTools.DatItems/Formats/Device.cs
+++ b/SabreTools.DatItems/Formats/Device.cs
@@ -23,8 +23,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public DeviceType DeviceType
{
- get => _device.ReadString(Models.Internal.Device.DeviceTypeKey).AsDeviceType();
- set => _device[Models.Internal.Device.DeviceTypeKey] = value.FromDeviceType();
+ get => _internal.ReadString(Models.Internal.Device.DeviceTypeKey).AsDeviceType();
+ set => _internal[Models.Internal.Device.DeviceTypeKey] = value.FromDeviceType();
}
[JsonIgnore]
@@ -36,8 +36,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tag")]
public string? Tag
{
- get => _device.ReadString(Models.Internal.Device.TagKey);
- set => _device[Models.Internal.Device.TagKey] = value;
+ get => _internal.ReadString(Models.Internal.Device.TagKey);
+ set => _internal[Models.Internal.Device.TagKey] = value;
}
///
@@ -46,8 +46,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("fixed_image", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("fixed_image")]
public string? FixedImage
{
- get => _device.ReadString(Models.Internal.Device.FixedImageKey);
- set => _device[Models.Internal.Device.FixedImageKey] = value;
+ get => _internal.ReadString(Models.Internal.Device.FixedImageKey);
+ set => _internal[Models.Internal.Device.FixedImageKey] = value;
}
///
@@ -57,8 +57,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("mandatory", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("mandatory")]
public long? Mandatory
{
- get => _device.ReadLong(Models.Internal.Device.MandatoryKey);
- set => _device[Models.Internal.Device.MandatoryKey] = value;
+ get => _internal.ReadLong(Models.Internal.Device.MandatoryKey);
+ set => _internal[Models.Internal.Device.MandatoryKey] = value;
}
[JsonIgnore]
@@ -70,8 +70,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("interface", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("interface")]
public string? Interface
{
- get => _device.ReadString(Models.Internal.Device.InterfaceKey);
- set => _device[Models.Internal.Device.InterfaceKey] = value;
+ get => _internal.ReadString(Models.Internal.Device.InterfaceKey);
+ set => _internal[Models.Internal.Device.InterfaceKey] = value;
}
///
@@ -80,8 +80,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("instances", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("instances")]
public List? Instances
{
- get => _device.Read(Models.Internal.Device.InstanceKey)?.ToList();
- set => _device[Models.Internal.Device.InstanceKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Device.InstanceKey)?.ToList();
+ set => _internal[Models.Internal.Device.InstanceKey] = value?.ToArray();
}
[JsonIgnore]
@@ -93,19 +93,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("extensions", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("extensions")]
public List? Extensions
{
- get => _device.Read(Models.Internal.Device.ExtensionKey)?.ToList();
- set => _device[Models.Internal.Device.ExtensionKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Device.ExtensionKey)?.ToList();
+ set => _internal[Models.Internal.Device.ExtensionKey] = value?.ToArray();
}
[JsonIgnore]
public bool ExtensionsSpecified { get { return Extensions != null && Extensions.Count > 0; } }
- ///
- /// Internal Device model
- ///
- [JsonIgnore]
- private Models.Internal.Device _device = new();
-
#endregion
#region Constructors
@@ -115,6 +109,7 @@ namespace SabreTools.DatItems.Formats
///
public Device()
{
+ _internal = new Models.Internal.Device();
ItemType = ItemType.Device;
}
@@ -134,25 +129,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _device = this._device?.Clone() as Models.Internal.Device ?? new Models.Internal.Device(),
+ _internal = this._internal?.Clone() as Models.Internal.Device ?? new Models.Internal.Device(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Adjuster, return false
- if (ItemType != other?.ItemType || other is not Device otherInternal)
- return false;
-
- // Compare the internal models
- return _device.EqualTo(otherInternal._device);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/DeviceReference.cs b/SabreTools.DatItems/Formats/DeviceReference.cs
index 57ad0c32..3805a8e0 100644
--- a/SabreTools.DatItems/Formats/DeviceReference.cs
+++ b/SabreTools.DatItems/Formats/DeviceReference.cs
@@ -18,16 +18,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _deviceRef.ReadString(Models.Internal.DeviceRef.NameKey);
- set => _deviceRef[Models.Internal.DeviceRef.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.DeviceRef.NameKey);
+ set => _internal[Models.Internal.DeviceRef.NameKey] = value;
}
- ///
- /// Internal DeviceRef model
- ///
- [JsonIgnore]
- private Models.Internal.DeviceRef _deviceRef = new();
-
#endregion
#region Accessors
@@ -47,6 +41,7 @@ namespace SabreTools.DatItems.Formats
///
public DeviceReference()
{
+ _internal = new Models.Internal.DeviceRef();
Name = string.Empty;
ItemType = ItemType.DeviceReference;
}
@@ -67,25 +62,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _deviceRef = this._deviceRef?.Clone() as Models.Internal.DeviceRef ?? new Models.Internal.DeviceRef(),
+ _internal = this._internal?.Clone() as Models.Internal.DeviceRef ?? new Models.Internal.DeviceRef(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Adjuster, return false
- if (ItemType != other?.ItemType || other is not DeviceReference otherInternal)
- return false;
-
- // Compare the internal models
- return _deviceRef.EqualTo(otherInternal._deviceRef);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/DipLocation.cs b/SabreTools.DatItems/Formats/DipLocation.cs
index 1d9f0bbf..3efb5804 100644
--- a/SabreTools.DatItems/Formats/DipLocation.cs
+++ b/SabreTools.DatItems/Formats/DipLocation.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _dipLocation.ReadString(Models.Internal.DipLocation.NameKey);
- set => _dipLocation[Models.Internal.DipLocation.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.DipLocation.NameKey);
+ set => _internal[Models.Internal.DipLocation.NameKey] = value;
}
///
@@ -28,8 +28,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("number", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("number")]
public long? Number
{
- get => _dipLocation.ReadLong(Models.Internal.DipLocation.NameKey);
- set => _dipLocation[Models.Internal.DipLocation.NameKey] = value;
+ get => _internal.ReadLong(Models.Internal.DipLocation.NameKey);
+ set => _internal[Models.Internal.DipLocation.NameKey] = value;
}
[JsonIgnore]
@@ -41,19 +41,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("inverted", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("inverted")]
public bool? Inverted
{
- get => _dipLocation.ReadBool(Models.Internal.DipLocation.InvertedKey);
- set => _dipLocation[Models.Internal.DipLocation.InvertedKey] = value;
+ get => _internal.ReadBool(Models.Internal.DipLocation.InvertedKey);
+ set => _internal[Models.Internal.DipLocation.InvertedKey] = value;
}
[JsonIgnore]
public bool InvertedSpecified { get { return Inverted != null; } }
- ///
- /// Internal DipLocation model
- ///
- [JsonIgnore]
- private Models.Internal.DipLocation _dipLocation = new();
-
#endregion
#region Accessors
@@ -73,6 +67,7 @@ namespace SabreTools.DatItems.Formats
///
public DipLocation()
{
+ _internal = new Models.Internal.DipLocation();
Name = string.Empty;
ItemType = ItemType.DipLocation;
}
@@ -93,25 +88,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _dipLocation = this._dipLocation?.Clone() as Models.Internal.DipLocation ?? new Models.Internal.DipLocation(),
+ _internal = this._internal?.Clone() as Models.Internal.DipLocation ?? new Models.Internal.DipLocation(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a DipLocation, return false
- if (ItemType != other?.ItemType || other is not DipLocation otherInternal)
- return false;
-
- // Compare the internal models
- return _dipLocation.EqualTo(otherInternal._dipLocation);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/DipSwitch.cs b/SabreTools.DatItems/Formats/DipSwitch.cs
index bb4460cf..2725e6c7 100644
--- a/SabreTools.DatItems/Formats/DipSwitch.cs
+++ b/SabreTools.DatItems/Formats/DipSwitch.cs
@@ -22,8 +22,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _dipSwitch.ReadString(Models.Internal.DipSwitch.NameKey);
- set => _dipSwitch[Models.Internal.DipSwitch.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.DipSwitch.NameKey);
+ set => _internal[Models.Internal.DipSwitch.NameKey] = value;
}
///
@@ -32,8 +32,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tag")]
public string? Tag
{
- get => _dipSwitch.ReadString(Models.Internal.DipSwitch.TagKey);
- set => _dipSwitch[Models.Internal.DipSwitch.TagKey] = value;
+ get => _internal.ReadString(Models.Internal.DipSwitch.TagKey);
+ set => _internal[Models.Internal.DipSwitch.TagKey] = value;
}
///
@@ -42,8 +42,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("mask", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("mask")]
public string? Mask
{
- get => _dipSwitch.ReadString(Models.Internal.DipSwitch.MaskKey);
- set => _dipSwitch[Models.Internal.DipSwitch.MaskKey] = value;
+ get => _internal.ReadString(Models.Internal.DipSwitch.MaskKey);
+ set => _internal[Models.Internal.DipSwitch.MaskKey] = value;
}
///
@@ -52,8 +52,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("conditions", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("conditions")]
public List? Conditions
{
- get => _dipSwitch.Read(Models.Internal.DipSwitch.ConditionKey)?.ToList();
- set => _dipSwitch[Models.Internal.DipSwitch.ConditionKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.DipSwitch.ConditionKey)?.ToList();
+ set => _internal[Models.Internal.DipSwitch.ConditionKey] = value?.ToArray();
}
[JsonIgnore]
@@ -65,8 +65,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("locations", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("locations")]
public List? Locations
{
- get => _dipSwitch.Read(Models.Internal.DipSwitch.DipLocationKey)?.ToList();
- set => _dipSwitch[Models.Internal.DipSwitch.DipLocationKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.DipSwitch.DipLocationKey)?.ToList();
+ set => _internal[Models.Internal.DipSwitch.DipLocationKey] = value?.ToArray();
}
[JsonIgnore]
@@ -78,8 +78,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("values", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("values")]
public List? Values
{
- get => _dipSwitch.Read(Models.Internal.DipSwitch.DipValueKey)?.ToList();
- set => _dipSwitch[Models.Internal.DipSwitch.DipValueKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.DipSwitch.DipValueKey)?.ToList();
+ set => _internal[Models.Internal.DipSwitch.DipValueKey] = value?.ToArray();
}
[JsonIgnore]
@@ -109,12 +109,6 @@ namespace SabreTools.DatItems.Formats
#endregion
- ///
- /// Internal DipSwitch model
- ///
- [JsonIgnore]
- private Models.Internal.DipSwitch _dipSwitch = new();
-
#endregion // Fields
#region Accessors
@@ -134,6 +128,7 @@ namespace SabreTools.DatItems.Formats
///
public DipSwitch()
{
+ _internal = new Models.Internal.DipSwitch();
Name = string.Empty;
ItemType = ItemType.DipSwitch;
}
@@ -154,27 +149,12 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _dipSwitch = this._dipSwitch?.Clone() as Models.Internal.DipSwitch ?? new Models.Internal.DipSwitch(),
+ _internal = this._internal?.Clone() as Models.Internal.DipSwitch ?? new Models.Internal.DipSwitch(),
Part = this.Part,
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a DipSwitch, return false
- if (ItemType != other?.ItemType || other is not DipSwitch otherInternal)
- return false;
-
- // Compare the internal models
- return _dipSwitch.EqualTo(otherInternal._dipSwitch);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/DipValue.cs b/SabreTools.DatItems/Formats/DipValue.cs
index 0e406706..e24ad9e1 100644
--- a/SabreTools.DatItems/Formats/DipValue.cs
+++ b/SabreTools.DatItems/Formats/DipValue.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _dipValue.ReadString(Models.Internal.DipValue.NameKey);
- set => _dipValue[Models.Internal.DipValue.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.DipValue.NameKey);
+ set => _internal[Models.Internal.DipValue.NameKey] = value;
}
///
@@ -30,8 +30,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("value", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("value")]
public string? Value
{
- get => _dipValue.ReadString(Models.Internal.DipValue.ValueKey);
- set => _dipValue[Models.Internal.DipValue.ValueKey] = value;
+ get => _internal.ReadString(Models.Internal.DipValue.ValueKey);
+ set => _internal[Models.Internal.DipValue.ValueKey] = value;
}
///
@@ -40,8 +40,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("default", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("default")]
public bool? Default
{
- get => _dipValue.ReadBool(Models.Internal.DipValue.DefaultKey);
- set => _dipValue[Models.Internal.DipValue.DefaultKey] = value;
+ get => _internal.ReadBool(Models.Internal.DipValue.DefaultKey);
+ set => _internal[Models.Internal.DipValue.DefaultKey] = value;
}
[JsonIgnore]
@@ -53,19 +53,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("conditions", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("conditions")]
public List? Conditions
{
- get => _dipValue.Read(Models.Internal.DipValue.ConditionKey)?.ToList();
- set => _dipValue[Models.Internal.DipValue.ConditionKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.DipValue.ConditionKey)?.ToList();
+ set => _internal[Models.Internal.DipValue.ConditionKey] = value?.ToArray();
}
[JsonIgnore]
public bool ConditionsSpecified { get { return Conditions != null && Conditions.Count > 0; } }
- ///
- /// Internal DipValue model
- ///
- [JsonIgnore]
- private Models.Internal.DipValue _dipValue = new();
-
#endregion
#region Accessors
@@ -85,6 +79,7 @@ namespace SabreTools.DatItems.Formats
///
public DipValue()
{
+ _internal = new Models.Internal.DipValue();
Name = string.Empty;
ItemType = ItemType.DipValue;
}
@@ -105,25 +100,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _dipValue = this._dipValue?.Clone() as Models.Internal.DipValue ?? new Models.Internal.DipValue(),
+ _internal = this._internal?.Clone() as Models.Internal.DipValue ?? new Models.Internal.DipValue(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a DipValue, return false
- if (ItemType != other?.ItemType || other is not DipValue otherInternal)
- return false;
-
- // Compare the internal models
- return _dipValue.EqualTo(otherInternal._dipValue);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Disk.cs b/SabreTools.DatItems/Formats/Disk.cs
index 3016859d..590b496d 100644
--- a/SabreTools.DatItems/Formats/Disk.cs
+++ b/SabreTools.DatItems/Formats/Disk.cs
@@ -23,8 +23,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _disk.ReadString(Models.Internal.Disk.NameKey);
- set => _disk[Models.Internal.Disk.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Disk.NameKey);
+ set => _internal[Models.Internal.Disk.NameKey] = value;
}
///
@@ -33,8 +33,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("md5", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("md5")]
public string? MD5
{
- get => _disk.ReadString(Models.Internal.Disk.MD5Key);
- set => _disk[Models.Internal.Disk.MD5Key] = TextHelper.NormalizeMD5(value);
+ get => _internal.ReadString(Models.Internal.Disk.MD5Key);
+ set => _internal[Models.Internal.Disk.MD5Key] = TextHelper.NormalizeMD5(value);
}
///
@@ -43,8 +43,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha1", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha1")]
public string? SHA1
{
- get => _disk.ReadString(Models.Internal.Disk.SHA1Key);
- set => _disk[Models.Internal.Disk.SHA1Key] = TextHelper.NormalizeSHA1(value);
+ get => _internal.ReadString(Models.Internal.Disk.SHA1Key);
+ set => _internal[Models.Internal.Disk.SHA1Key] = TextHelper.NormalizeSHA1(value);
}
///
@@ -53,8 +53,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("merge", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("merge")]
public string? MergeTag
{
- get => _disk.ReadString(Models.Internal.Disk.MergeKey);
- set => _disk[Models.Internal.Disk.MergeKey] = value;
+ get => _internal.ReadString(Models.Internal.Disk.MergeKey);
+ set => _internal[Models.Internal.Disk.MergeKey] = value;
}
///
@@ -63,8 +63,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("region", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("region")]
public string? Region
{
- get => _disk.ReadString(Models.Internal.Disk.RegionKey);
- set => _disk[Models.Internal.Disk.RegionKey] = value;
+ get => _internal.ReadString(Models.Internal.Disk.RegionKey);
+ set => _internal[Models.Internal.Disk.RegionKey] = value;
}
///
@@ -73,8 +73,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("index", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("index")]
public string? Index
{
- get => _disk.ReadString(Models.Internal.Disk.IndexKey);
- set => _disk[Models.Internal.Disk.IndexKey] = value;
+ get => _internal.ReadString(Models.Internal.Disk.IndexKey);
+ set => _internal[Models.Internal.Disk.IndexKey] = value;
}
///
@@ -83,8 +83,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("writable", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("writable")]
public bool? Writable
{
- get => _disk.ReadBool(Models.Internal.Disk.WritableKey);
- set => _disk[Models.Internal.Disk.WritableKey] = value;
+ get => _internal.ReadBool(Models.Internal.Disk.WritableKey);
+ set => _internal[Models.Internal.Disk.WritableKey] = value;
}
[JsonIgnore]
@@ -97,8 +97,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public ItemStatus ItemStatus
{
- get => _disk.ReadString(Models.Internal.Disk.StatusKey).AsItemStatus();
- set => _disk[Models.Internal.Disk.StatusKey] = value.FromItemStatus(yesno: false);
+ get => _internal.ReadString(Models.Internal.Disk.StatusKey).AsItemStatus();
+ set => _internal[Models.Internal.Disk.StatusKey] = value.FromItemStatus(yesno: false);
}
[JsonIgnore]
@@ -110,8 +110,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("optional", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("optional")]
public bool? Optional
{
- get => _disk.ReadBool(Models.Internal.Disk.OptionalKey);
- set => _disk[Models.Internal.Disk.OptionalKey] = value;
+ get => _internal.ReadBool(Models.Internal.Disk.OptionalKey);
+ set => _internal[Models.Internal.Disk.OptionalKey] = value;
}
[JsonIgnore]
@@ -124,9 +124,13 @@ namespace SabreTools.DatItems.Formats
///
/// Disk area information
///
- /// This is inverted from the internal model
+ /// Hack on top of internal model
[JsonProperty("diskarea", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("diskarea")]
- public DiskArea? DiskArea { get; set; }
+ public DiskArea? DiskArea
+ {
+ get => _internal.Read("DISKAREA");
+ set => _internal["DISKAREA"] = value;
+ }
[JsonIgnore]
public bool DiskAreaSpecified
@@ -141,9 +145,13 @@ namespace SabreTools.DatItems.Formats
///
/// Original hardware part associated with the item
///
- /// This is inverted from the internal model
+ /// Hack on top of internal model
[JsonProperty("part", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("part")]
- public Part? Part { get; set; }
+ public Part? Part
+ {
+ get => _internal.Read("PART");
+ set => _internal["PART"] = value;
+ }
[JsonIgnore]
public bool PartSpecified
@@ -158,12 +166,6 @@ namespace SabreTools.DatItems.Formats
#endregion
- ///
- /// Internal Disk model
- ///
- [JsonIgnore]
- private Models.Internal.Disk _disk = new();
-
#endregion // Fields
#region Accessors
@@ -183,6 +185,7 @@ namespace SabreTools.DatItems.Formats
///
public Disk()
{
+ _internal = new Models.Internal.Disk();
Name = string.Empty;
ItemType = ItemType.Disk;
DupeType = 0x00;
@@ -194,6 +197,7 @@ namespace SabreTools.DatItems.Formats
///
public Disk(BaseFile baseFile)
{
+ _internal = new Models.Internal.Disk();
Name = baseFile.Filename;
MD5 = TextHelper.ByteArrayToString(baseFile.MD5);
SHA1 = TextHelper.ByteArrayToString(baseFile.SHA1);
@@ -219,10 +223,7 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _disk = this._disk?.Clone() as Models.Internal.Disk ?? new Models.Internal.Disk(),
-
- DiskArea = this.DiskArea,
- Part = this.Part,
+ _internal = this._internal?.Clone() as Models.Internal.Disk ?? new Models.Internal.Disk(),
};
}
@@ -246,7 +247,7 @@ namespace SabreTools.DatItems.Formats
///
public Rom ConvertToRom()
{
- var rom = new Rom(_disk.ConvertToRom())
+ var rom = new Rom(_internal.ConvertToRom())
{
ItemType = ItemType.Rom,
DupeType = this.DupeType,
@@ -266,28 +267,17 @@ namespace SabreTools.DatItems.Formats
#region Comparision Methods
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Disk, return false
- if (ItemType != other?.ItemType || other is not Disk otherInternal)
- return false;
-
- // Compare the internal models
- return _disk.EqualTo(otherInternal._disk);
- }
-
///
/// Fill any missing size and hash information from another Disk
///
/// Disk to fill information from
- public void FillMissingInformation(Disk other) => _disk.FillMissingHashes(other?._disk);
+ public void FillMissingInformation(Disk other) => _internal.FillMissingHashes(other?._internal);
///
/// Get unique duplicate suffix on name collision
///
/// String representing the suffix
- public string GetDuplicateSuffix() => _disk.GetDuplicateSuffix();
+ public string GetDuplicateSuffix() => _internal.GetDuplicateSuffix();
#endregion
diff --git a/SabreTools.DatItems/Formats/DiskArea.cs b/SabreTools.DatItems/Formats/DiskArea.cs
index 934750c2..9d0a678f 100644
--- a/SabreTools.DatItems/Formats/DiskArea.cs
+++ b/SabreTools.DatItems/Formats/DiskArea.cs
@@ -19,16 +19,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("name")]
public string? Name
{
- get => _diskArea.ReadString(Models.Internal.DiskArea.NameKey);
- set => _diskArea[Models.Internal.DiskArea.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.DiskArea.NameKey);
+ set => _internal[Models.Internal.DiskArea.NameKey] = value;
}
- ///
- /// Internal DiskArea model
- ///
- [JsonIgnore]
- private Models.Internal.DiskArea _diskArea = new();
-
#endregion
#region Accessors
@@ -48,6 +42,7 @@ namespace SabreTools.DatItems.Formats
///
public DiskArea()
{
+ _internal = new Models.Internal.DiskArea();
Name = string.Empty;
ItemType = ItemType.DiskArea;
}
@@ -68,25 +63,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _diskArea = this._diskArea?.Clone() as Models.Internal.DiskArea ?? new Models.Internal.DiskArea(),
+ _internal = this._internal?.Clone() as Models.Internal.DiskArea ?? new Models.Internal.DiskArea(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a DiskArea, return false
- if (ItemType != other?.ItemType || other is not DiskArea otherInternal)
- return false;
-
- // Compare the internal models
- return _diskArea.EqualTo(otherInternal._diskArea);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Display.cs b/SabreTools.DatItems/Formats/Display.cs
index edb46632..cd95f2c8 100644
--- a/SabreTools.DatItems/Formats/Display.cs
+++ b/SabreTools.DatItems/Formats/Display.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tag")]
public string? Tag
{
- get => _display.ReadString(Models.Internal.Display.TagKey);
- set => _display[Models.Internal.Display.TagKey] = value;
+ get => _internal.ReadString(Models.Internal.Display.TagKey);
+ set => _internal[Models.Internal.Display.TagKey] = value;
}
///
@@ -31,8 +31,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public DisplayType DisplayType
{
- get => _display.ReadString(Models.Internal.Display.DisplayTypeKey).AsDisplayType();
- set => _display[Models.Internal.Display.DisplayTypeKey] = value.FromDisplayType();
+ get => _internal.ReadString(Models.Internal.Display.DisplayTypeKey).AsDisplayType();
+ set => _internal[Models.Internal.Display.DisplayTypeKey] = value.FromDisplayType();
}
[JsonIgnore]
@@ -44,8 +44,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("rotate", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("rotate")]
public long? Rotate
{
- get => _display.ReadLong(Models.Internal.Display.RotateKey);
- set => _display[Models.Internal.Display.RotateKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.RotateKey);
+ set => _internal[Models.Internal.Display.RotateKey] = value;
}
[JsonIgnore]
@@ -57,8 +57,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("flipx", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("flipx")]
public bool? FlipX
{
- get => _display.ReadBool(Models.Internal.Display.FlipXKey);
- set => _display[Models.Internal.Display.FlipXKey] = value;
+ get => _internal.ReadBool(Models.Internal.Display.FlipXKey);
+ set => _internal[Models.Internal.Display.FlipXKey] = value;
}
[JsonIgnore]
@@ -70,8 +70,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("width", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("width")]
public long? Width
{
- get => _display.ReadLong(Models.Internal.Display.WidthKey);
- set => _display[Models.Internal.Display.WidthKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.WidthKey);
+ set => _internal[Models.Internal.Display.WidthKey] = value;
}
[JsonIgnore]
@@ -83,8 +83,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("height", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("height")]
public long? Height
{
- get => _display.ReadLong(Models.Internal.Display.HeightKey);
- set => _display[Models.Internal.Display.HeightKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.HeightKey);
+ set => _internal[Models.Internal.Display.HeightKey] = value;
}
[JsonIgnore]
@@ -96,8 +96,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("refresh", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("refresh")]
public double? Refresh
{
- get => _display.ReadDouble(Models.Internal.Display.RefreshKey);
- set => _display[Models.Internal.Display.RefreshKey] = value;
+ get => _internal.ReadDouble(Models.Internal.Display.RefreshKey);
+ set => _internal[Models.Internal.Display.RefreshKey] = value;
}
[JsonIgnore]
@@ -109,8 +109,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("pixclock", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("pixclock")]
public long? PixClock
{
- get => _display.ReadLong(Models.Internal.Display.PixClockKey);
- set => _display[Models.Internal.Display.PixClockKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.PixClockKey);
+ set => _internal[Models.Internal.Display.PixClockKey] = value;
}
[JsonIgnore]
@@ -122,8 +122,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("htotal", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("htotal")]
public long? HTotal
{
- get => _display.ReadLong(Models.Internal.Display.HTotalKey);
- set => _display[Models.Internal.Display.HTotalKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.HTotalKey);
+ set => _internal[Models.Internal.Display.HTotalKey] = value;
}
[JsonIgnore]
@@ -135,8 +135,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("hbend", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("hbend")]
public long? HBEnd
{
- get => _display.ReadLong(Models.Internal.Display.HBEndKey);
- set => _display[Models.Internal.Display.HBEndKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.HBEndKey);
+ set => _internal[Models.Internal.Display.HBEndKey] = value;
}
[JsonIgnore]
@@ -148,8 +148,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("hbstart", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("hbstart")]
public long? HBStart
{
- get => _display.ReadLong(Models.Internal.Display.HBStartKey);
- set => _display[Models.Internal.Display.HBStartKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.HBStartKey);
+ set => _internal[Models.Internal.Display.HBStartKey] = value;
}
[JsonIgnore]
@@ -161,8 +161,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("vtotal", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("vtotal")]
public long? VTotal
{
- get => _display.ReadLong(Models.Internal.Display.VTotalKey);
- set => _display[Models.Internal.Display.VTotalKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.VTotalKey);
+ set => _internal[Models.Internal.Display.VTotalKey] = value;
}
[JsonIgnore]
@@ -174,8 +174,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("vbend", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("vbend")]
public long? VBEnd
{
- get => _display.ReadLong(Models.Internal.Display.VBEndKey);
- set => _display[Models.Internal.Display.VBEndKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.VBEndKey);
+ set => _internal[Models.Internal.Display.VBEndKey] = value;
}
[JsonIgnore]
@@ -187,19 +187,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("vbstart", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("vbstart")]
public long? VBStart
{
- get => _display.ReadLong(Models.Internal.Display.VBStartKey);
- set => _display[Models.Internal.Display.VBStartKey] = value;
+ get => _internal.ReadLong(Models.Internal.Display.VBStartKey);
+ set => _internal[Models.Internal.Display.VBStartKey] = value;
}
[JsonIgnore]
public bool VBStartSpecified { get { return VBStart != null; } }
- ///
- /// Internal Display model
- ///
- [JsonIgnore]
- private Models.Internal.Display _display = new();
-
#endregion
#region Constructors
@@ -209,6 +203,7 @@ namespace SabreTools.DatItems.Formats
///
public Display()
{
+ _internal = new Models.Internal.Display();
ItemType = ItemType.Display;
}
@@ -228,25 +223,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _display = this._display?.Clone() as Models.Internal.Display ?? new Models.Internal.Display(),
+ _internal = this._internal?.Clone() as Models.Internal.Display ?? new Models.Internal.Display(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Display, return false
- if (ItemType != other?.ItemType || other is not Display otherInternal)
- return false;
-
- // Compare the internal models
- return _display.EqualTo(otherInternal._display);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Driver.cs b/SabreTools.DatItems/Formats/Driver.cs
index a1b433fe..08536174 100644
--- a/SabreTools.DatItems/Formats/Driver.cs
+++ b/SabreTools.DatItems/Formats/Driver.cs
@@ -24,8 +24,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public SupportStatus Status
{
- get => _driver.ReadString(Models.Internal.Driver.StatusKey).AsSupportStatus();
- set => _driver[Models.Internal.Driver.StatusKey] = value.FromSupportStatus();
+ get => _internal.ReadString(Models.Internal.Driver.StatusKey).AsSupportStatus();
+ set => _internal[Models.Internal.Driver.StatusKey] = value.FromSupportStatus();
}
[JsonIgnore]
@@ -38,8 +38,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public SupportStatus Emulation
{
- get => _driver.ReadString(Models.Internal.Driver.EmulationKey).AsSupportStatus();
- set => _driver[Models.Internal.Driver.EmulationKey] = value.FromSupportStatus();
+ get => _internal.ReadString(Models.Internal.Driver.EmulationKey).AsSupportStatus();
+ set => _internal[Models.Internal.Driver.EmulationKey] = value.FromSupportStatus();
}
[JsonIgnore]
@@ -52,8 +52,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public SupportStatus Cocktail
{
- get => _driver.ReadString(Models.Internal.Driver.CocktailKey).AsSupportStatus();
- set => _driver[Models.Internal.Driver.CocktailKey] = value.FromSupportStatus();
+ get => _internal.ReadString(Models.Internal.Driver.CocktailKey).AsSupportStatus();
+ set => _internal[Models.Internal.Driver.CocktailKey] = value.FromSupportStatus();
}
[JsonIgnore]
@@ -66,8 +66,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public Supported SaveState
{
- get => _driver.ReadString(Models.Internal.Driver.SaveStateKey).AsSupported();
- set => _driver[Models.Internal.Driver.SaveStateKey] = value.FromSupported(verbose: true);
+ get => _internal.ReadString(Models.Internal.Driver.SaveStateKey).AsSupported();
+ set => _internal[Models.Internal.Driver.SaveStateKey] = value.FromSupported(verbose: true);
}
[JsonIgnore]
@@ -79,8 +79,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("requiresartwork", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("requiresartwork")]
public bool? RequiresArtwork
{
- get => _driver.ReadBool(Models.Internal.Driver.RequiresArtworkKey);
- set => _driver[Models.Internal.Driver.RequiresArtworkKey] = value;
+ get => _internal.ReadBool(Models.Internal.Driver.RequiresArtworkKey);
+ set => _internal[Models.Internal.Driver.RequiresArtworkKey] = value;
}
[JsonIgnore]
@@ -92,8 +92,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("unofficial", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("unofficial")]
public bool? Unofficial
{
- get => _driver.ReadBool(Models.Internal.Driver.UnofficialKey);
- set => _driver[Models.Internal.Driver.UnofficialKey] = value;
+ get => _internal.ReadBool(Models.Internal.Driver.UnofficialKey);
+ set => _internal[Models.Internal.Driver.UnofficialKey] = value;
}
[JsonIgnore]
@@ -105,8 +105,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("nosoundhardware", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("nosoundhardware")]
public bool? NoSoundHardware
{
- get => _driver.ReadBool(Models.Internal.Driver.NoSoundHardwareKey);
- set => _driver[Models.Internal.Driver.NoSoundHardwareKey] = value;
+ get => _internal.ReadBool(Models.Internal.Driver.NoSoundHardwareKey);
+ set => _internal[Models.Internal.Driver.NoSoundHardwareKey] = value;
}
[JsonIgnore]
@@ -118,19 +118,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("incomplete", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("incomplete")]
public bool? Incomplete
{
- get => _driver.ReadBool(Models.Internal.Driver.IncompleteKey);
- set => _driver[Models.Internal.Driver.IncompleteKey] = value;
+ get => _internal.ReadBool(Models.Internal.Driver.IncompleteKey);
+ set => _internal[Models.Internal.Driver.IncompleteKey] = value;
}
[JsonIgnore]
public bool IncompleteSpecified { get { return Incomplete != null; } }
- ///
- /// Internal Driver model
- ///
- [JsonIgnore]
- private Models.Internal.Driver _driver = new();
-
#endregion
#region Constructors
@@ -140,6 +134,7 @@ namespace SabreTools.DatItems.Formats
///
public Driver()
{
+ _internal = new Models.Internal.Driver();
ItemType = ItemType.Driver;
}
@@ -159,25 +154,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _driver = this._driver?.Clone() as Models.Internal.Driver ?? new Models.Internal.Driver(),
+ _internal = this._internal?.Clone() as Models.Internal.Driver ?? new Models.Internal.Driver(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Driver, return false
- if (ItemType != other?.ItemType || other is not Driver otherInternal)
- return false;
-
- // Compare the internal models
- return _driver.EqualTo(otherInternal._driver);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Extension.cs b/SabreTools.DatItems/Formats/Extension.cs
index 48d00a1a..2ad193e6 100644
--- a/SabreTools.DatItems/Formats/Extension.cs
+++ b/SabreTools.DatItems/Formats/Extension.cs
@@ -18,16 +18,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _extension.ReadString(Models.Internal.Extension.NameKey);
- set => _extension[Models.Internal.Extension.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Extension.NameKey);
+ set => _internal[Models.Internal.Extension.NameKey] = value;
}
- ///
- /// Internal Extension model
- ///
- [JsonIgnore]
- private Models.Internal.Extension _extension = new();
-
#endregion
#region Accessors
@@ -47,6 +41,7 @@ namespace SabreTools.DatItems.Formats
///
public Extension()
{
+ _internal = new Models.Internal.Extension();
Name = string.Empty;
ItemType = ItemType.Extension;
}
@@ -67,25 +62,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _extension = this._extension?.Clone() as Models.Internal.Extension ?? new Models.Internal.Extension(),
+ _internal = this._internal?.Clone() as Models.Internal.Extension ?? new Models.Internal.Extension(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Adjuster, return false
- if (ItemType != other?.ItemType || other is not Extension otherInternal)
- return false;
-
- // Compare the internal models
- return _extension.EqualTo(otherInternal._extension);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Feature.cs b/SabreTools.DatItems/Formats/Feature.cs
index d70472dd..4044f520 100644
--- a/SabreTools.DatItems/Formats/Feature.cs
+++ b/SabreTools.DatItems/Formats/Feature.cs
@@ -21,8 +21,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public FeatureType Type
{
- get => _feature.ReadString(Models.Internal.Feature.FeatureTypeKey).AsFeatureType();
- set => _feature[Models.Internal.Feature.FeatureTypeKey] = value.FromFeatureType();
+ get => _internal.ReadString(Models.Internal.Feature.FeatureTypeKey).AsFeatureType();
+ set => _internal[Models.Internal.Feature.FeatureTypeKey] = value.FromFeatureType();
}
[JsonIgnore]
@@ -35,8 +35,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public FeatureStatus Status
{
- get => _feature.ReadString(Models.Internal.Feature.StatusKey).AsFeatureStatus();
- set => _feature[Models.Internal.Feature.StatusKey] = value.FromFeatureStatus();
+ get => _internal.ReadString(Models.Internal.Feature.StatusKey).AsFeatureStatus();
+ set => _internal[Models.Internal.Feature.StatusKey] = value.FromFeatureStatus();
}
[JsonIgnore]
@@ -49,19 +49,13 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public FeatureStatus Overall
{
- get => _feature.ReadString(Models.Internal.Feature.OverallKey).AsFeatureStatus();
- set => _feature[Models.Internal.Feature.OverallKey] = value.FromFeatureStatus();
+ get => _internal.ReadString(Models.Internal.Feature.OverallKey).AsFeatureStatus();
+ set => _internal[Models.Internal.Feature.OverallKey] = value.FromFeatureStatus();
}
[JsonIgnore]
public bool OverallSpecified { get { return Overall != FeatureStatus.NULL; } }
- ///
- /// Internal Feature model
- ///
- [JsonIgnore]
- private Models.Internal.Feature _feature = new();
-
#endregion
#region Constructors
@@ -71,6 +65,7 @@ namespace SabreTools.DatItems.Formats
///
public Feature()
{
+ _internal = new Models.Internal.Feature();
ItemType = ItemType.Feature;
}
@@ -90,25 +85,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _feature = this._feature?.Clone() as Models.Internal.Feature ?? new Models.Internal.Feature(),
+ _internal = this._internal?.Clone() as Models.Internal.Feature ?? new Models.Internal.Feature(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Feature, return false
- if (ItemType != other?.ItemType || other is not Feature otherInternal)
- return false;
-
- // Compare the internal models
- return _feature.EqualTo(otherInternal._feature);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Info.cs b/SabreTools.DatItems/Formats/Info.cs
index 611e0b6d..1dfe76f1 100644
--- a/SabreTools.DatItems/Formats/Info.cs
+++ b/SabreTools.DatItems/Formats/Info.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _info.ReadString(Models.Internal.Info.NameKey);
- set => _info[Models.Internal.Info.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Info.NameKey);
+ set => _internal[Models.Internal.Info.NameKey] = value;
}
///
@@ -28,16 +28,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("value"), XmlElement("value")]
public string? Value
{
- get => _info.ReadString(Models.Internal.Info.ValueKey);
- set => _info[Models.Internal.Info.ValueKey] = value;
+ get => _internal.ReadString(Models.Internal.Info.ValueKey);
+ set => _internal[Models.Internal.Info.ValueKey] = value;
}
- ///
- /// Internal Info model
- ///
- [JsonIgnore]
- private Models.Internal.Info _info = new();
-
#endregion
#region Accessors
@@ -57,6 +51,7 @@ namespace SabreTools.DatItems.Formats
///
public Info()
{
+ _internal = new Models.Internal.Info();
Name = string.Empty;
ItemType = ItemType.Info;
}
@@ -77,25 +72,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _info = this._info?.Clone() as Models.Internal.Info ?? new Models.Internal.Info(),
+ _internal = this._internal?.Clone() as Models.Internal.Info ?? new Models.Internal.Info(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Info, return false
- if (ItemType != other?.ItemType || other is not Info otherInternal)
- return false;
-
- // Compare the internal models
- return _info.EqualTo(otherInternal._info);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Input.cs b/SabreTools.DatItems/Formats/Input.cs
index f38fee88..e0308a84 100644
--- a/SabreTools.DatItems/Formats/Input.cs
+++ b/SabreTools.DatItems/Formats/Input.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("service", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("service")]
public bool? Service
{
- get => _input.ReadBool(Models.Internal.Input.ServiceKey);
- set => _input[Models.Internal.Input.ServiceKey] = value;
+ get => _internal.ReadBool(Models.Internal.Input.ServiceKey);
+ set => _internal[Models.Internal.Input.ServiceKey] = value;
}
[JsonIgnore]
@@ -33,8 +33,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("tilt", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tilt")]
public bool? Tilt
{
- get => _input.ReadBool(Models.Internal.Input.TiltKey);
- set => _input[Models.Internal.Input.TiltKey] = value;
+ get => _internal.ReadBool(Models.Internal.Input.TiltKey);
+ set => _internal[Models.Internal.Input.TiltKey] = value;
}
[JsonIgnore]
@@ -46,8 +46,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("players", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("players")]
public long? Players
{
- get => _input.ReadLong(Models.Internal.Input.PlayersKey);
- set => _input[Models.Internal.Input.PlayersKey] = value;
+ get => _internal.ReadLong(Models.Internal.Input.PlayersKey);
+ set => _internal[Models.Internal.Input.PlayersKey] = value;
}
[JsonIgnore]
@@ -59,8 +59,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("coins", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("coins")]
public long? Coins
{
- get => _input.ReadLong(Models.Internal.Input.CoinsKey);
- set => _input[Models.Internal.Input.CoinsKey] = value;
+ get => _internal.ReadLong(Models.Internal.Input.CoinsKey);
+ set => _internal[Models.Internal.Input.CoinsKey] = value;
}
[JsonIgnore]
@@ -72,19 +72,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("controls", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("controls")]
public List? Controls
{
- get => _input.Read(Models.Internal.Input.ControlKey)?.ToList();
- set => _input[Models.Internal.Input.ControlKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Input.ControlKey)?.ToList();
+ set => _internal[Models.Internal.Input.ControlKey] = value?.ToArray();
}
[JsonIgnore]
public bool ControlsSpecified { get { return Controls != null && Controls.Count > 0; } }
- ///
- /// Internal Input model
- ///
- [JsonIgnore]
- private Models.Internal.Input _input = new();
-
#endregion
#region Constructors
@@ -94,6 +88,7 @@ namespace SabreTools.DatItems.Formats
///
public Input()
{
+ _internal = new Models.Internal.Input();
ItemType = ItemType.Input;
}
@@ -113,25 +108,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _input = this._input?.Clone() as Models.Internal.Input ?? new Models.Internal.Input(),
+ _internal = this._internal?.Clone() as Models.Internal.Input ?? new Models.Internal.Input(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Input, return false
- if (ItemType != other?.ItemType || other is not Input otherInternal)
- return false;
-
- // Compare the internal models
- return _input.EqualTo(otherInternal._input);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Instance.cs b/SabreTools.DatItems/Formats/Instance.cs
index b77242fe..b2cbd228 100644
--- a/SabreTools.DatItems/Formats/Instance.cs
+++ b/SabreTools.DatItems/Formats/Instance.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _instance.ReadString(Models.Internal.Instance.NameKey);
- set => _instance[Models.Internal.Instance.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Instance.NameKey);
+ set => _internal[Models.Internal.Instance.NameKey] = value;
}
///
@@ -28,16 +28,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("briefname", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("briefname")]
public string? BriefName
{
- get => _instance.ReadString(Models.Internal.Instance.BriefNameKey);
- set => _instance[Models.Internal.Instance.BriefNameKey] = value;
+ get => _internal.ReadString(Models.Internal.Instance.BriefNameKey);
+ set => _internal[Models.Internal.Instance.BriefNameKey] = value;
}
- ///
- /// Internal Instance model
- ///
- [JsonIgnore]
- private Models.Internal.Instance _instance = new();
-
#endregion
#region Accessors
@@ -57,6 +51,7 @@ namespace SabreTools.DatItems.Formats
///
public Instance()
{
+ _internal = new Models.Internal.Instance();
Name = string.Empty;
ItemType = ItemType.Instance;
}
@@ -77,25 +72,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _instance = this._instance?.Clone() as Models.Internal.Instance ?? new Models.Internal.Instance(),
+ _internal = this._internal?.Clone() as Models.Internal.Instance ?? new Models.Internal.Instance(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Instance, return false
- if (ItemType != other?.ItemType || other is not Instance otherInternal)
- return false;
-
- // Compare the internal models
- return _instance.EqualTo(otherInternal._instance);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Media.cs b/SabreTools.DatItems/Formats/Media.cs
index 296d79d0..89de1854 100644
--- a/SabreTools.DatItems/Formats/Media.cs
+++ b/SabreTools.DatItems/Formats/Media.cs
@@ -21,8 +21,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _media.ReadString(Models.Internal.Media.NameKey);
- set => _media[Models.Internal.Media.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Media.NameKey);
+ set => _internal[Models.Internal.Media.NameKey] = value;
}
///
@@ -31,8 +31,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("md5", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("md5")]
public string? MD5
{
- get => _media.ReadString(Models.Internal.Media.MD5Key);
- set => _media[Models.Internal.Media.MD5Key] = TextHelper.NormalizeMD5(value);
+ get => _internal.ReadString(Models.Internal.Media.MD5Key);
+ set => _internal[Models.Internal.Media.MD5Key] = TextHelper.NormalizeMD5(value);
}
///
@@ -41,8 +41,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha1", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha1")]
public string? SHA1
{
- get => _media.ReadString(Models.Internal.Media.SHA1Key);
- set => _media[Models.Internal.Media.SHA1Key] = TextHelper.NormalizeSHA1(value);
+ get => _internal.ReadString(Models.Internal.Media.SHA1Key);
+ set => _internal[Models.Internal.Media.SHA1Key] = TextHelper.NormalizeSHA1(value);
}
///
@@ -51,8 +51,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha256", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha256")]
public string? SHA256
{
- get => _media.ReadString(Models.Internal.Media.SHA256Key);
- set => _media[Models.Internal.Media.SHA256Key] = TextHelper.NormalizeSHA256(value);
+ get => _internal.ReadString(Models.Internal.Media.SHA256Key);
+ set => _internal[Models.Internal.Media.SHA256Key] = TextHelper.NormalizeSHA256(value);
}
///
@@ -61,16 +61,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("spamsum", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("spamsum")]
public string? SpamSum
{
- get => _media.ReadString(Models.Internal.Media.SpamSumKey);
- set => _media[Models.Internal.Media.SpamSumKey] = value;
+ get => _internal.ReadString(Models.Internal.Media.SpamSumKey);
+ set => _internal[Models.Internal.Media.SpamSumKey] = value;
}
- ///
- /// Internal Media model
- ///
- [JsonIgnore]
- private Models.Internal.Media _media = new();
-
#endregion
#region Accessors
@@ -90,6 +84,7 @@ namespace SabreTools.DatItems.Formats
///
public Media()
{
+ _internal = new Models.Internal.Media();
Name = string.Empty;
ItemType = ItemType.Media;
DupeType = 0x00;
@@ -101,6 +96,7 @@ namespace SabreTools.DatItems.Formats
///
public Media(BaseFile baseFile)
{
+ _internal = new Models.Internal.Media();
Name = baseFile.Filename;
MD5 = TextHelper.ByteArrayToString(baseFile.MD5);
SHA1 = TextHelper.ByteArrayToString(baseFile.SHA1);
@@ -127,7 +123,7 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _media = this._media?.Clone() as Models.Internal.Media ?? new Models.Internal.Media(),
+ _internal = this._internal?.Clone() as Models.Internal.Media ?? new Models.Internal.Media(),
};
}
@@ -153,7 +149,7 @@ namespace SabreTools.DatItems.Formats
///
public Rom ConvertToRom()
{
- var rom = new Rom(_media.ConvertToRom())
+ var rom = new Rom(_internal.ConvertToRom())
{
ItemType = ItemType.Rom,
DupeType = this.DupeType,
@@ -170,28 +166,17 @@ namespace SabreTools.DatItems.Formats
#region Comparision Methods
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Media, return false
- if (ItemType != other?.ItemType || other is not Media otherInternal)
- return false;
-
- // Compare the internal models
- return _media.EqualTo(otherInternal._media);
- }
-
///
/// Fill any missing size and hash information from another Media
///
/// Media to fill information from
- public void FillMissingInformation(Media other) => _media.FillMissingHashes(other?._media);
+ public void FillMissingInformation(Media other) => _internal.FillMissingHashes(other?._internal);
///
/// Get unique duplicate suffix on name collision
///
/// String representing the suffix
- public string GetDuplicateSuffix() => _media.GetDuplicateSuffix();
+ public string GetDuplicateSuffix() => _internal.GetDuplicateSuffix();
#endregion
diff --git a/SabreTools.DatItems/Formats/Part.cs b/SabreTools.DatItems/Formats/Part.cs
index 0b1c49cc..e9903e7b 100644
--- a/SabreTools.DatItems/Formats/Part.cs
+++ b/SabreTools.DatItems/Formats/Part.cs
@@ -18,33 +18,27 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _part.ReadString(Models.Internal.Part.NameKey);
- set => _part[Models.Internal.Part.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Part.NameKey);
+ set => _internal[Models.Internal.Part.NameKey] = value;
}
[JsonProperty("interface"), XmlElement("interface")]
public string? Interface
{
- get => _part.ReadString(Models.Internal.Part.InterfaceKey);
- set => _part[Models.Internal.Part.InterfaceKey] = value;
+ get => _internal.ReadString(Models.Internal.Part.InterfaceKey);
+ set => _internal[Models.Internal.Part.InterfaceKey] = value;
}
[JsonProperty("features", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("features")]
public List? Features
{
- get => _part.Read(Models.Internal.Part.FeatureKey)?.ToList();
- set => _part[Models.Internal.Part.FeatureKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Part.FeatureKey)?.ToList();
+ set => _internal[Models.Internal.Part.FeatureKey] = value?.ToArray();
}
[JsonIgnore]
public bool FeaturesSpecified { get { return Features != null && Features.Count > 0; } }
- ///
- /// Internal Part model
- ///
- [JsonIgnore]
- private Models.Internal.Part _part = new();
-
#endregion
#region Accessors
@@ -64,6 +58,7 @@ namespace SabreTools.DatItems.Formats
///
public Part()
{
+ _internal = new Models.Internal.Part();
Name = string.Empty;
ItemType = ItemType.Part;
}
@@ -84,25 +79,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _part = this._part?.Clone() as Models.Internal.Part ?? new Models.Internal.Part(),
+ _internal = this._internal?.Clone() as Models.Internal.Part ?? new Models.Internal.Part(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Part, return false
- if (ItemType != other?.ItemType || other is not Part otherInternal)
- return false;
-
- // Compare the internal models
- return _part.EqualTo(otherInternal._part);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/PartFeature.cs b/SabreTools.DatItems/Formats/PartFeature.cs
index 2182d416..45b87f50 100644
--- a/SabreTools.DatItems/Formats/PartFeature.cs
+++ b/SabreTools.DatItems/Formats/PartFeature.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _feature.ReadString(Models.Internal.Feature.NameKey);
- set => _feature[Models.Internal.Feature.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Feature.NameKey);
+ set => _internal[Models.Internal.Feature.NameKey] = value;
}
///
@@ -28,16 +28,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("value"), XmlElement("value")]
public string? Value
{
- get => _feature.ReadString(Models.Internal.Feature.ValueKey);
- set => _feature[Models.Internal.Feature.ValueKey] = value;
+ get => _internal.ReadString(Models.Internal.Feature.ValueKey);
+ set => _internal[Models.Internal.Feature.ValueKey] = value;
}
- ///
- /// Internal Feature model
- ///
- [JsonIgnore]
- private Models.Internal.Feature _feature = new();
-
#endregion
#region Accessors
@@ -57,6 +51,7 @@ namespace SabreTools.DatItems.Formats
///
public PartFeature()
{
+ _internal = new Models.Internal.Feature();
Name = string.Empty;
ItemType = ItemType.PartFeature;
}
@@ -77,25 +72,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _feature = this._feature?.Clone() as Models.Internal.Feature ?? new Models.Internal.Feature(),
+ _internal = this._internal?.Clone() as Models.Internal.Feature ?? new Models.Internal.Feature(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a PartFeature, return false
- if (ItemType != other?.ItemType || other is not PartFeature otherInternal)
- return false;
-
- // Compare the internal models
- return _feature.EqualTo(otherInternal._feature);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Port.cs b/SabreTools.DatItems/Formats/Port.cs
index 2134e621..b8ba7952 100644
--- a/SabreTools.DatItems/Formats/Port.cs
+++ b/SabreTools.DatItems/Formats/Port.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("tag", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("tag")]
public string? Tag
{
- get => _port.ReadString(Models.Internal.Port.TagKey);
- set => _port[Models.Internal.Port.TagKey] = value;
+ get => _internal.ReadString(Models.Internal.Port.TagKey);
+ set => _internal[Models.Internal.Port.TagKey] = value;
}
///
@@ -30,19 +30,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("analogs", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("analogs")]
public List? Analogs
{
- get => _port.Read(Models.Internal.Port.AnalogKey)?.ToList();
- set => _port[Models.Internal.Port.AnalogKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Port.AnalogKey)?.ToList();
+ set => _internal[Models.Internal.Port.AnalogKey] = value?.ToArray();
}
[JsonIgnore]
public bool AnalogsSpecified { get { return Analogs != null && Analogs.Count > 0; } }
- ///
- /// Internal Port model
- ///
- [JsonIgnore]
- private Models.Internal.Port _port = new();
-
#endregion
#region Constructors
@@ -52,6 +46,7 @@ namespace SabreTools.DatItems.Formats
///
public Port()
{
+ _internal = new Models.Internal.Port();
ItemType = ItemType.Port;
}
@@ -71,25 +66,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _port = this._port?.Clone() as Models.Internal.Port ?? new Models.Internal.Port(),
+ _internal = this._internal?.Clone() as Models.Internal.Port ?? new Models.Internal.Port(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Port, return false
- if (ItemType != other?.ItemType || other is not Port otherInternal)
- return false;
-
- // Compare the internal models
- return _port.EqualTo(otherInternal._port);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/RamOption.cs b/SabreTools.DatItems/Formats/RamOption.cs
index 23ff09fb..841318c1 100644
--- a/SabreTools.DatItems/Formats/RamOption.cs
+++ b/SabreTools.DatItems/Formats/RamOption.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _ramOption.ReadString(Models.Internal.RamOption.NameKey);
- set => _ramOption[Models.Internal.RamOption.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.RamOption.NameKey);
+ set => _internal[Models.Internal.RamOption.NameKey] = value;
}
///
@@ -28,8 +28,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("default", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("default")]
public bool? Default
{
- get => _ramOption.ReadBool(Models.Internal.RamOption.DefaultKey);
- set => _ramOption[Models.Internal.RamOption.DefaultKey] = value;
+ get => _internal.ReadBool(Models.Internal.RamOption.DefaultKey);
+ set => _internal[Models.Internal.RamOption.DefaultKey] = value;
}
[JsonIgnore]
@@ -41,16 +41,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("content", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("content")]
public string? Content
{
- get => _ramOption.ReadString(Models.Internal.RamOption.ContentKey);
- set => _ramOption[Models.Internal.RamOption.ContentKey] = value;
+ get => _internal.ReadString(Models.Internal.RamOption.ContentKey);
+ set => _internal[Models.Internal.RamOption.ContentKey] = value;
}
- ///
- /// Internal RamOption model
- ///
- [JsonIgnore]
- private Models.Internal.RamOption _ramOption = new();
-
#endregion
#region Accessors
@@ -70,6 +64,7 @@ namespace SabreTools.DatItems.Formats
///
public RamOption()
{
+ _internal = new Models.Internal.RamOption();
Name = string.Empty;
ItemType = ItemType.RamOption;
}
@@ -90,25 +85,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _ramOption = this._ramOption?.Clone() as Models.Internal.RamOption ?? new Models.Internal.RamOption(),
+ _internal = this._internal?.Clone() as Models.Internal.RamOption ?? new Models.Internal.RamOption(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a RamOption, return false
- if (ItemType != other?.ItemType || other is not RamOption otherInternal)
- return false;
-
- // Compare the internal models
- return _ramOption.EqualTo(otherInternal._ramOption);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Release.cs b/SabreTools.DatItems/Formats/Release.cs
index fe47fee3..320425a8 100644
--- a/SabreTools.DatItems/Formats/Release.cs
+++ b/SabreTools.DatItems/Formats/Release.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _release.ReadString(Models.Internal.Release.NameKey);
- set => _release[Models.Internal.Release.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Release.NameKey);
+ set => _internal[Models.Internal.Release.NameKey] = value;
}
///
@@ -28,8 +28,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("region", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("region")]
public string? Region
{
- get => _release.ReadString(Models.Internal.Release.RegionKey);
- set => _release[Models.Internal.Release.RegionKey] = value;
+ get => _internal.ReadString(Models.Internal.Release.RegionKey);
+ set => _internal[Models.Internal.Release.RegionKey] = value;
}
///
@@ -38,8 +38,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("language", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("language")]
public string? Language
{
- get => _release.ReadString(Models.Internal.Release.LanguageKey);
- set => _release[Models.Internal.Release.LanguageKey] = value;
+ get => _internal.ReadString(Models.Internal.Release.LanguageKey);
+ set => _internal[Models.Internal.Release.LanguageKey] = value;
}
///
@@ -48,8 +48,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("date", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("date")]
public string? Date
{
- get => _release.ReadString(Models.Internal.Release.DateKey);
- set => _release[Models.Internal.Release.DateKey] = value;
+ get => _internal.ReadString(Models.Internal.Release.DateKey);
+ set => _internal[Models.Internal.Release.DateKey] = value;
}
///
@@ -58,19 +58,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("default", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("default")]
public bool? Default
{
- get => _release.ReadBool(Models.Internal.Release.DefaultKey);
- set => _release[Models.Internal.Release.DefaultKey] = value;
+ get => _internal.ReadBool(Models.Internal.Release.DefaultKey);
+ set => _internal[Models.Internal.Release.DefaultKey] = value;
}
[JsonIgnore]
public bool DefaultSpecified { get { return Default != null; } }
- ///
- /// Internal Release model
- ///
- [JsonIgnore]
- private Models.Internal.Release _release = new();
-
#endregion
#region Accessors
@@ -90,6 +84,7 @@ namespace SabreTools.DatItems.Formats
///
public Release()
{
+ _internal = new Models.Internal.Release();
Name = string.Empty;
ItemType = ItemType.Release;
Region = string.Empty;
@@ -114,25 +109,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _release = this._release?.Clone() as Models.Internal.Release ?? new Models.Internal.Release(),
+ _internal = this._internal?.Clone() as Models.Internal.Release ?? new Models.Internal.Release(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Release, return false
- if (ItemType != other?.ItemType || other is not Release otherInternal)
- return false;
-
- // Compare the internal models
- return _release.EqualTo(otherInternal._release);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Rom.cs b/SabreTools.DatItems/Formats/Rom.cs
index 77fa405e..f5d73c50 100644
--- a/SabreTools.DatItems/Formats/Rom.cs
+++ b/SabreTools.DatItems/Formats/Rom.cs
@@ -24,8 +24,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _rom.ReadString(Models.Internal.Rom.NameKey);
- set => _rom[Models.Internal.Rom.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.NameKey);
+ set => _internal[Models.Internal.Rom.NameKey] = value;
}
///
@@ -34,8 +34,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("bios", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("bios")]
public string? Bios
{
- get => _rom.ReadString(Models.Internal.Rom.BiosKey);
- set => _rom[Models.Internal.Rom.BiosKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.BiosKey);
+ set => _internal[Models.Internal.Rom.BiosKey] = value;
}
///
@@ -44,8 +44,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("size", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("size")]
public long? Size
{
- get => _rom.ReadLong(Models.Internal.Rom.SizeKey);
- set => _rom[Models.Internal.Rom.SizeKey] = value;
+ get => _internal.ReadLong(Models.Internal.Rom.SizeKey);
+ set => _internal[Models.Internal.Rom.SizeKey] = value;
}
[JsonIgnore]
@@ -57,8 +57,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("crc", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("crc")]
public string? CRC
{
- get => _rom.ReadString(Models.Internal.Rom.CRCKey);
- set => _rom[Models.Internal.Rom.CRCKey] = TextHelper.NormalizeCRC32(value);
+ get => _internal.ReadString(Models.Internal.Rom.CRCKey);
+ set => _internal[Models.Internal.Rom.CRCKey] = TextHelper.NormalizeCRC32(value);
}
///
@@ -67,8 +67,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("md5", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("md5")]
public string? MD5
{
- get => _rom.ReadString(Models.Internal.Rom.MD5Key);
- set => _rom[Models.Internal.Rom.MD5Key] = TextHelper.NormalizeMD5(value);
+ get => _internal.ReadString(Models.Internal.Rom.MD5Key);
+ set => _internal[Models.Internal.Rom.MD5Key] = TextHelper.NormalizeMD5(value);
}
///
@@ -77,8 +77,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha1", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha1")]
public string? SHA1
{
- get => _rom.ReadString(Models.Internal.Rom.SHA1Key);
- set => _rom[Models.Internal.Rom.SHA1Key] = TextHelper.NormalizeSHA1(value);
+ get => _internal.ReadString(Models.Internal.Rom.SHA1Key);
+ set => _internal[Models.Internal.Rom.SHA1Key] = TextHelper.NormalizeSHA1(value);
}
///
@@ -87,8 +87,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha256", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha256")]
public string? SHA256
{
- get => _rom.ReadString(Models.Internal.Rom.SHA256Key);
- set => _rom[Models.Internal.Rom.SHA256Key] = TextHelper.NormalizeSHA256(value);
+ get => _internal.ReadString(Models.Internal.Rom.SHA256Key);
+ set => _internal[Models.Internal.Rom.SHA256Key] = TextHelper.NormalizeSHA256(value);
}
///
@@ -97,8 +97,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha384", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha384")]
public string? SHA384
{
- get => _rom.ReadString(Models.Internal.Rom.SHA384Key);
- set => _rom[Models.Internal.Rom.SHA384Key] = TextHelper.NormalizeSHA384(value);
+ get => _internal.ReadString(Models.Internal.Rom.SHA384Key);
+ set => _internal[Models.Internal.Rom.SHA384Key] = TextHelper.NormalizeSHA384(value);
}
///
@@ -107,8 +107,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("sha512", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("sha512")]
public string? SHA512
{
- get => _rom.ReadString(Models.Internal.Rom.SHA512Key);
- set => _rom[Models.Internal.Rom.SHA512Key] = TextHelper.NormalizeSHA512(value);
+ get => _internal.ReadString(Models.Internal.Rom.SHA512Key);
+ set => _internal[Models.Internal.Rom.SHA512Key] = TextHelper.NormalizeSHA512(value);
}
///
@@ -117,8 +117,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("spamsum", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("spamsum")]
public string? SpamSum
{
- get => _rom.ReadString(Models.Internal.Rom.SpamSumKey);
- set => _rom[Models.Internal.Rom.SpamSumKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.SpamSumKey);
+ set => _internal[Models.Internal.Rom.SpamSumKey] = value;
}
///
@@ -127,8 +127,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("merge", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("merge")]
public string? MergeTag
{
- get => _rom.ReadString(Models.Internal.Rom.MergeKey);
- set => _rom[Models.Internal.Rom.MergeKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.MergeKey);
+ set => _internal[Models.Internal.Rom.MergeKey] = value;
}
///
@@ -137,8 +137,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("region", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("biregionos")]
public string? Region
{
- get => _rom.ReadString(Models.Internal.Rom.RegionKey);
- set => _rom[Models.Internal.Rom.RegionKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.RegionKey);
+ set => _internal[Models.Internal.Rom.RegionKey] = value;
}
///
@@ -147,8 +147,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("offset", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("offset")]
public string? Offset
{
- get => _rom.ReadString(Models.Internal.Rom.OffsetKey);
- set => _rom[Models.Internal.Rom.OffsetKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.OffsetKey);
+ set => _internal[Models.Internal.Rom.OffsetKey] = value;
}
///
@@ -157,8 +157,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("date", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("date")]
public string? Date
{
- get => _rom.ReadString(Models.Internal.Rom.DateKey);
- set => _rom[Models.Internal.Rom.DateKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.DateKey);
+ set => _internal[Models.Internal.Rom.DateKey] = value;
}
///
@@ -168,8 +168,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public ItemStatus ItemStatus
{
- get => _rom.ReadString(Models.Internal.Rom.StatusKey).AsItemStatus();
- set => _rom[Models.Internal.Rom.StatusKey] = value.FromItemStatus(yesno: false);
+ get => _internal.ReadString(Models.Internal.Rom.StatusKey).AsItemStatus();
+ set => _internal[Models.Internal.Rom.StatusKey] = value.FromItemStatus(yesno: false);
}
[JsonIgnore]
@@ -181,8 +181,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("optional", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("optional")]
public bool? Optional
{
- get => _rom.ReadBool(Models.Internal.Rom.OptionalKey);
- set => _rom[Models.Internal.Rom.OptionalKey] = value;
+ get => _internal.ReadBool(Models.Internal.Rom.OptionalKey);
+ set => _internal[Models.Internal.Rom.OptionalKey] = value;
}
[JsonIgnore]
@@ -194,8 +194,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("inverted", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("inverted")]
public bool? Inverted
{
- get => _rom.ReadBool(Models.Internal.Rom.InvertedKey);
- set => _rom[Models.Internal.Rom.InvertedKey] = value;
+ get => _internal.ReadBool(Models.Internal.Rom.InvertedKey);
+ set => _internal[Models.Internal.Rom.InvertedKey] = value;
}
[JsonIgnore]
@@ -211,8 +211,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("ado_source", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("ado_source")]
public string? ArchiveDotOrgSource
{
- get => _rom.ReadString(Models.Internal.Rom.SourceKey);
- set => _rom[Models.Internal.Rom.SourceKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.SourceKey);
+ set => _internal[Models.Internal.Rom.SourceKey] = value;
}
///
@@ -221,8 +221,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("ado_format", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("ado_format")]
public string? ArchiveDotOrgFormat
{
- get => _rom.ReadString(Models.Internal.Rom.FormatKey);
- set => _rom[Models.Internal.Rom.FormatKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.FormatKey);
+ set => _internal[Models.Internal.Rom.FormatKey] = value;
}
///
@@ -231,8 +231,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("original_filename", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("original_filename")]
public string? OriginalFilename
{
- get => _rom.ReadString(Models.Internal.Rom.OriginalKey);
- set => _rom[Models.Internal.Rom.OriginalKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.OriginalKey);
+ set => _internal[Models.Internal.Rom.OriginalKey] = value;
}
///
@@ -244,8 +244,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("rotation", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("rotation")]
public string? Rotation
{
- get => _rom.ReadString(Models.Internal.Rom.RotationKey);
- set => _rom[Models.Internal.Rom.RotationKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.RotationKey);
+ set => _internal[Models.Internal.Rom.RotationKey] = value;
}
///
@@ -254,8 +254,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("summation", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("summation")]
public string? Summation
{
- get => _rom.ReadString(Models.Internal.Rom.SummationKey);
- set => _rom[Models.Internal.Rom.SummationKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.SummationKey);
+ set => _internal[Models.Internal.Rom.SummationKey] = value;
}
#endregion
@@ -265,11 +265,11 @@ namespace SabreTools.DatItems.Formats
///
/// Alternate name for the item
///
- [JsonProperty("alt_romname", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("alt_romname")]
+ [JsonProperty("alt_internalname", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("alt_internalname")]
public string? AltName
{
- get => _rom.ReadString(Models.Internal.Rom.AltRomnameKey);
- set => _rom[Models.Internal.Rom.AltRomnameKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.AltRomnameKey);
+ set => _internal[Models.Internal.Rom.AltRomnameKey] = value;
}
///
@@ -278,8 +278,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("alt_title", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("alt_title")]
public string? AltTitle
{
- get => _rom.ReadString(Models.Internal.Rom.AltTitleKey);
- set => _rom[Models.Internal.Rom.AltTitleKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.AltTitleKey);
+ set => _internal[Models.Internal.Rom.AltTitleKey] = value;
}
#endregion
@@ -292,8 +292,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("mia", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("mia")]
public bool? MIA
{
- get => _rom.ReadBool(Models.Internal.Rom.MIAKey);
- set => _rom[Models.Internal.Rom.MIAKey] = value;
+ get => _internal.ReadBool(Models.Internal.Rom.MIAKey);
+ set => _internal[Models.Internal.Rom.MIAKey] = value;
}
[JsonIgnore]
@@ -306,9 +306,13 @@ namespace SabreTools.DatItems.Formats
///
/// OpenMSX sub item type
///
- /// This is inverted from the internal model
+ /// Hack on top of internal model
[JsonProperty("original", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("original")]
- public Original? Original { get; set; }
+ public Original? Original
+ {
+ get => _internal.Read("ORIGINAL");
+ set => _internal["ORIGINAL"] = value;
+ }
[JsonIgnore]
public bool OriginalSpecified { get { return Original != null && Original != default; } }
@@ -320,8 +324,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public OpenMSXSubType OpenMSXSubType
{
- get => _rom.ReadString(Models.Internal.Rom.OpenMSXMediaType).AsOpenMSXSubType();
- set => _rom[Models.Internal.Rom.OpenMSXMediaType] = value.FromOpenMSXSubType();
+ get => _internal.ReadString(Models.Internal.Rom.OpenMSXMediaType).AsOpenMSXSubType();
+ set => _internal[Models.Internal.Rom.OpenMSXMediaType] = value.FromOpenMSXSubType();
}
[JsonIgnore]
@@ -334,8 +338,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("openmsx_type", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("openmsx_type")]
public string? OpenMSXType
{
- get => _rom.ReadString(Models.Internal.Rom.OpenMSXType);
- set => _rom[Models.Internal.Rom.OpenMSXType] = value;
+ get => _internal.ReadString(Models.Internal.Rom.OpenMSXType);
+ set => _internal[Models.Internal.Rom.OpenMSXType] = value;
}
///
@@ -344,8 +348,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("remark", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("remark")]
public string? Remark
{
- get => _rom.ReadString(Models.Internal.Rom.RemarkKey);
- set => _rom[Models.Internal.Rom.RemarkKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.RemarkKey);
+ set => _internal[Models.Internal.Rom.RemarkKey] = value;
}
///
@@ -353,7 +357,11 @@ namespace SabreTools.DatItems.Formats
///
/// TODO: Investigate where this value came from?
[JsonProperty("boot", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("boot")]
- public string? Boot { get; set; }
+ public string? Boot
+ {
+ get => _internal.ReadString("BOOT");
+ set => _internal["BOOT"] = value;
+ }
#endregion
@@ -362,9 +370,13 @@ namespace SabreTools.DatItems.Formats
///
/// Data area information
///
- /// This is inverted from the internal model
+ /// Hack on top of internal model
[JsonProperty("dataarea", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("dataarea")]
- public DataArea? DataArea { get; set; } = null;
+ public DataArea? DataArea
+ {
+ get => _internal.Read("DATAAREA");
+ set => _internal["DATAAREA"] = value;
+ }
[JsonIgnore]
public bool DataAreaSpecified
@@ -386,8 +398,8 @@ namespace SabreTools.DatItems.Formats
[JsonConverter(typeof(StringEnumConverter))]
public LoadFlag LoadFlag
{
- get => _rom.ReadString(Models.Internal.Rom.LoadFlagKey).AsLoadFlag();
- set => _rom[Models.Internal.Rom.LoadFlagKey] = value.FromLoadFlag();
+ get => _internal.ReadString(Models.Internal.Rom.LoadFlagKey).AsLoadFlag();
+ set => _internal[Models.Internal.Rom.LoadFlagKey] = value.FromLoadFlag();
}
[JsonIgnore]
@@ -396,9 +408,13 @@ namespace SabreTools.DatItems.Formats
///
/// Original hardware part associated with the item
///
- /// This is inverted from the internal model
+ /// Hack on top of internal model
[JsonProperty("part", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("part")]
- public Part? Part { get; set; } = null;
+ public Part? Part
+ {
+ get => _internal.Read("PART");
+ set => _internal["PART"] = value;
+ }
[JsonIgnore]
public bool PartSpecified
@@ -417,18 +433,12 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("value", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("value")]
public string? Value
{
- get => _rom.ReadString(Models.Internal.Rom.ValueKey);
- set => _rom[Models.Internal.Rom.ValueKey] = value;
+ get => _internal.ReadString(Models.Internal.Rom.ValueKey);
+ set => _internal[Models.Internal.Rom.ValueKey] = value;
}
#endregion
- ///
- /// Internal Rom model
- ///
- [JsonIgnore]
- private Models.Internal.Rom _rom = new();
-
#endregion // Fields
#region Accessors
@@ -448,6 +458,7 @@ namespace SabreTools.DatItems.Formats
///
public Rom()
{
+ _internal = new Models.Internal.Rom();
Name = null;
ItemType = ItemType.Rom;
DupeType = 0x00;
@@ -462,6 +473,7 @@ namespace SabreTools.DatItems.Formats
///
public Rom(string name, string machineName)
{
+ _internal = new Models.Internal.Rom();
Name = name;
ItemType = ItemType.Rom;
Size = null;
@@ -480,6 +492,7 @@ namespace SabreTools.DatItems.Formats
///
public Rom(BaseFile baseFile)
{
+ _internal = new Models.Internal.Rom();
Name = baseFile.Filename;
Size = baseFile.Size;
CRC = TextHelper.ByteArrayToString(baseFile.CRC);
@@ -501,7 +514,7 @@ namespace SabreTools.DatItems.Formats
///
public Rom(Models.Internal.Rom? rom)
{
- _rom = rom ?? new Models.Internal.Rom();
+ _internal = rom ?? new Models.Internal.Rom();
ItemType = ItemType.Rom;
DupeType = 0x00;
@@ -525,10 +538,7 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _rom = this._rom?.Clone() as Models.Internal.Rom ?? new Models.Internal.Rom(),
-
- DataArea = this.DataArea,
- Part = this.Part,
+ _internal = this._internal?.Clone() as Models.Internal.Rom ?? new Models.Internal.Rom(),
};
}
@@ -557,40 +567,29 @@ namespace SabreTools.DatItems.Formats
#region Comparision Methods
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Rom, return false
- if (ItemType != other?.ItemType || other is not Rom otherInternal)
- return false;
-
- // Compare the internal models
- return _rom.EqualTo(otherInternal._rom);
- }
-
///
/// Fill any missing size and hash information from another Rom
///
/// Rom to fill information from
- public void FillMissingInformation(Rom other) => _rom.FillMissingHashes(other?._rom);
+ public void FillMissingInformation(Rom other) => _internal.FillMissingHashes(other?._internal);
///
/// Get unique duplicate suffix on name collision
///
/// String representing the suffix
- public string GetDuplicateSuffix() => _rom.GetDuplicateSuffix();
+ public string GetDuplicateSuffix() => _internal.GetDuplicateSuffix();
///
/// Returns if the Rom contains any hashes
///
/// True if any hash exists, false otherwise
- public bool HasHashes() => _rom.HasHashes();
+ public bool HasHashes() => _internal.HasHashes();
///
/// Returns if all of the hashes are set to their 0-byte values
///
/// True if any hash matches the 0-byte value, false otherwise
- public bool HasZeroHash() => _rom.HasZeroHash();
+ public bool HasZeroHash() => _internal.HasZeroHash();
#endregion
diff --git a/SabreTools.DatItems/Formats/Sample.cs b/SabreTools.DatItems/Formats/Sample.cs
index cc0b8dbc..d30f7c06 100644
--- a/SabreTools.DatItems/Formats/Sample.cs
+++ b/SabreTools.DatItems/Formats/Sample.cs
@@ -18,16 +18,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _sample.ReadString(Models.Internal.Sample.NameKey);
- set => _sample[Models.Internal.Sample.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Sample.NameKey);
+ set => _internal[Models.Internal.Sample.NameKey] = value;
}
- ///
- /// Internal Sample model
- ///
- [JsonIgnore]
- private Models.Internal.Sample _sample = new();
-
#endregion
#region Accessors
@@ -47,6 +41,7 @@ namespace SabreTools.DatItems.Formats
///
public Sample()
{
+ _internal = new Models.Internal.Sample();
Name = string.Empty;
ItemType = ItemType.Sample;
}
@@ -67,25 +62,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _sample = this._sample?.Clone() as Models.Internal.Sample ?? new Models.Internal.Sample(),
+ _internal = this._internal?.Clone() as Models.Internal.Sample ?? new Models.Internal.Sample(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Sample, return false
- if (ItemType != other?.ItemType || other is not Sample otherInternal)
- return false;
-
- // Compare the internal models
- return _sample.EqualTo(otherInternal._sample);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/SharedFeature.cs b/SabreTools.DatItems/Formats/SharedFeature.cs
index f3576626..75d3359f 100644
--- a/SabreTools.DatItems/Formats/SharedFeature.cs
+++ b/SabreTools.DatItems/Formats/SharedFeature.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _sharedFeat.ReadString(Models.Internal.SharedFeat.NameKey);
- set => _sharedFeat[Models.Internal.SharedFeat.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.SharedFeat.NameKey);
+ set => _internal[Models.Internal.SharedFeat.NameKey] = value;
}
///
@@ -28,16 +28,10 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("value"), XmlElement("value")]
public string? Value
{
- get => _sharedFeat.ReadString(Models.Internal.SharedFeat.ValueKey);
- set => _sharedFeat[Models.Internal.SharedFeat.ValueKey] = value;
+ get => _internal.ReadString(Models.Internal.SharedFeat.ValueKey);
+ set => _internal[Models.Internal.SharedFeat.ValueKey] = value;
}
- ///
- /// Internal SharedFeat model
- ///
- [JsonIgnore]
- private Models.Internal.SharedFeat _sharedFeat = new();
-
#endregion
#region Accessors
@@ -57,6 +51,7 @@ namespace SabreTools.DatItems.Formats
///
public SharedFeature()
{
+ _internal = new Models.Internal.SharedFeat();
Name = string.Empty;
ItemType = ItemType.SharedFeature;
}
@@ -77,25 +72,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _sharedFeat = this._sharedFeat?.Clone() as Models.Internal.SharedFeat ?? new Models.Internal.SharedFeat(),
+ _internal = this._internal?.Clone() as Models.Internal.SharedFeat ?? new Models.Internal.SharedFeat(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a SharedFeature, return false
- if (ItemType != other?.ItemType || other is not SharedFeature otherInternal)
- return false;
-
- // Compare the internal models
- return _sharedFeat.EqualTo(otherInternal._sharedFeat);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Slot.cs b/SabreTools.DatItems/Formats/Slot.cs
index b63c43ce..9fa64c34 100644
--- a/SabreTools.DatItems/Formats/Slot.cs
+++ b/SabreTools.DatItems/Formats/Slot.cs
@@ -20,8 +20,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _slot.ReadString(Models.Internal.Slot.NameKey);
- set => _slot[Models.Internal.Slot.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.Slot.NameKey);
+ set => _internal[Models.Internal.Slot.NameKey] = value;
}
///
@@ -30,19 +30,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("slotoptions", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("slotoptions")]
public List? SlotOptions
{
- get => _slot.Read(Models.Internal.Slot.SlotOptionKey)?.ToList();
- set => _slot[Models.Internal.Slot.SlotOptionKey] = value?.ToArray();
+ get => _internal.Read(Models.Internal.Slot.SlotOptionKey)?.ToList();
+ set => _internal[Models.Internal.Slot.SlotOptionKey] = value?.ToArray();
}
[JsonIgnore]
public bool SlotOptionsSpecified { get { return SlotOptions != null && SlotOptions.Count > 0; } }
- ///
- /// Internal Slot model
- ///
- [JsonIgnore]
- private Models.Internal.Slot _slot = new();
-
#endregion
#region Accessors
@@ -62,6 +56,7 @@ namespace SabreTools.DatItems.Formats
///
public Slot()
{
+ _internal = new Models.Internal.Slot();
Name = string.Empty;
ItemType = ItemType.Slot;
}
@@ -82,25 +77,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _slot = this._slot?.Clone() as Models.Internal.Slot ?? new Models.Internal.Slot(),
+ _internal = this._internal?.Clone() as Models.Internal.Slot ?? new Models.Internal.Slot(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Slot, return false
- if (ItemType != other?.ItemType || other is not Slot otherInternal)
- return false;
-
- // Compare the internal models
- return _slot.EqualTo(otherInternal._slot);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/SlotOption.cs b/SabreTools.DatItems/Formats/SlotOption.cs
index 53c73dab..70c8d293 100644
--- a/SabreTools.DatItems/Formats/SlotOption.cs
+++ b/SabreTools.DatItems/Formats/SlotOption.cs
@@ -18,8 +18,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("name"), XmlElement("name")]
public string? Name
{
- get => _slotOption.ReadString(Models.Internal.SlotOption.NameKey);
- set => _slotOption[Models.Internal.SlotOption.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.SlotOption.NameKey);
+ set => _internal[Models.Internal.SlotOption.NameKey] = value;
}
///
@@ -28,8 +28,8 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("devname"), XmlElement("devname")]
public string? DeviceName
{
- get => _slotOption.ReadString(Models.Internal.SlotOption.DevNameKey);
- set => _slotOption[Models.Internal.SlotOption.DevNameKey] = value;
+ get => _internal.ReadString(Models.Internal.SlotOption.DevNameKey);
+ set => _internal[Models.Internal.SlotOption.DevNameKey] = value;
}
///
@@ -38,19 +38,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("default", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("default")]
public bool? Default
{
- get => _slotOption.ReadBool(Models.Internal.SlotOption.DefaultKey);
- set => _slotOption[Models.Internal.SlotOption.DefaultKey] = value;
+ get => _internal.ReadBool(Models.Internal.SlotOption.DefaultKey);
+ set => _internal[Models.Internal.SlotOption.DefaultKey] = value;
}
[JsonIgnore]
public bool DefaultSpecified { get { return Default != null; } }
- ///
- /// Internal SlotOption model
- ///
- [JsonIgnore]
- private Models.Internal.SlotOption _slotOption = new();
-
#endregion
#region Accessors
@@ -70,6 +64,7 @@ namespace SabreTools.DatItems.Formats
///
public SlotOption()
{
+ _internal = new Models.Internal.SlotOption();
Name = string.Empty;
ItemType = ItemType.SlotOption;
}
@@ -90,25 +85,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _slotOption = this._slotOption?.Clone() as Models.Internal.SlotOption ?? new Models.Internal.SlotOption(),
+ _internal = this._internal?.Clone() as Models.Internal.SlotOption ?? new Models.Internal.SlotOption(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Adjuster, return false
- if (ItemType != other?.ItemType || other is not SlotOption otherInternal)
- return false;
-
- // Compare the internal models
- return _slotOption.EqualTo(otherInternal._slotOption);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/SoftwareList.cs b/SabreTools.DatItems/Formats/SoftwareList.cs
index e2d18401..64fa7397 100644
--- a/SabreTools.DatItems/Formats/SoftwareList.cs
+++ b/SabreTools.DatItems/Formats/SoftwareList.cs
@@ -24,8 +24,8 @@ namespace SabreTools.DatItems.Formats
[XmlElement("tag")]
public string? Tag
{
- get => _softwareList.ReadString(Models.Internal.SoftwareList.TagKey);
- set => _softwareList[Models.Internal.SoftwareList.TagKey] = value;
+ get => _internal.ReadString(Models.Internal.SoftwareList.TagKey);
+ set => _internal[Models.Internal.SoftwareList.TagKey] = value;
}
///
@@ -35,8 +35,8 @@ namespace SabreTools.DatItems.Formats
[XmlElement("name")]
public string? Name
{
- get => _softwareList.ReadString(Models.Internal.SoftwareList.NameKey);
- set => _softwareList[Models.Internal.SoftwareList.NameKey] = value;
+ get => _internal.ReadString(Models.Internal.SoftwareList.NameKey);
+ set => _internal[Models.Internal.SoftwareList.NameKey] = value;
}
///
@@ -47,8 +47,8 @@ namespace SabreTools.DatItems.Formats
[XmlElement("status")]
public SoftwareListStatus Status
{
- get => _softwareList.ReadString(Models.Internal.SoftwareList.StatusKey).AsSoftwareListStatus();
- set => _softwareList[Models.Internal.SoftwareList.StatusKey] = value.FromSoftwareListStatus();
+ get => _internal.ReadString(Models.Internal.SoftwareList.StatusKey).AsSoftwareListStatus();
+ set => _internal[Models.Internal.SoftwareList.StatusKey] = value.FromSoftwareListStatus();
}
[JsonIgnore]
@@ -61,16 +61,10 @@ namespace SabreTools.DatItems.Formats
[XmlElement("filter")]
public string? Filter
{
- get => _softwareList.ReadString(Models.Internal.SoftwareList.FilterKey);
- set => _softwareList[Models.Internal.SoftwareList.FilterKey] = value;
+ get => _internal.ReadString(Models.Internal.SoftwareList.FilterKey);
+ set => _internal[Models.Internal.SoftwareList.FilterKey] = value;
}
- ///
- /// Internal SoftwareList model
- ///
- [JsonIgnore]
- private Models.Internal.SoftwareList _softwareList = new();
-
#endregion
#region Accessors
@@ -90,6 +84,7 @@ namespace SabreTools.DatItems.Formats
///
public SoftwareList()
{
+ _internal = new Models.Internal.SoftwareList();
Name = string.Empty;
ItemType = ItemType.SoftwareList;
}
@@ -109,24 +104,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _softwareList = this._softwareList?.Clone() as Models.Internal.SoftwareList ?? new Models.Internal.SoftwareList(),
+ _internal = this._internal?.Clone() as Models.Internal.SoftwareList ?? new Models.Internal.SoftwareList(),
};
}
#endregion
-
- #region Comparision Methods
-
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Adjuster, return false
- if (ItemType != other?.ItemType || other is not SoftwareList otherInternal)
- return false;
-
- // Compare the internal models
- return _softwareList.EqualTo(otherInternal._softwareList);
- }
-
- #endregion
}
}
diff --git a/SabreTools.DatItems/Formats/Sound.cs b/SabreTools.DatItems/Formats/Sound.cs
index 2e23401b..4b59d94c 100644
--- a/SabreTools.DatItems/Formats/Sound.cs
+++ b/SabreTools.DatItems/Formats/Sound.cs
@@ -18,19 +18,13 @@ namespace SabreTools.DatItems.Formats
[JsonProperty("channels", DefaultValueHandling = DefaultValueHandling.Ignore), XmlElement("channels")]
public long? Channels
{
- get => _sound.ReadLong(Models.Internal.Sound.ChannelsKey);
- set => _sound[Models.Internal.Sound.ChannelsKey] = value;
+ get => _internal.ReadLong(Models.Internal.Sound.ChannelsKey);
+ set => _internal[Models.Internal.Sound.ChannelsKey] = value;
}
[JsonIgnore]
public bool ChannelsSpecified { get { return Channels != null; } }
- ///
- /// Internal Sound model
- ///
- [JsonIgnore]
- private Models.Internal.Sound _sound = new();
-
#endregion
#region Constructors
@@ -40,6 +34,7 @@ namespace SabreTools.DatItems.Formats
///
public Sound()
{
+ _internal = new Models.Internal.Sound();
ItemType = ItemType.Sound;
}
@@ -59,25 +54,10 @@ namespace SabreTools.DatItems.Formats
Source = this.Source?.Clone() as Source,
Remove = this.Remove,
- _sound = this._sound?.Clone() as Models.Internal.Sound ?? new Models.Internal.Sound(),
+ _internal = this._internal?.Clone() as Models.Internal.Sound ?? new Models.Internal.Sound(),
};
}
#endregion
-
- #region Comparision Methods
-
- ///
- public override bool Equals(DatItem? other)
- {
- // If we don't have a Sound, return false
- if (ItemType != other?.ItemType || other is not Sound otherInternal)
- return false;
-
- // Compare the internal models
- return _sound.EqualTo(otherInternal._sound);
- }
-
- #endregion
}
}