From 71dcc04558a924091a913f102b9f874c9ca3d558 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Fri, 8 Mar 2024 15:31:21 -0500 Subject: [PATCH] Add new helper methods to DatItem --- SabreTools.DatItems/DatItem.cs | 34 +++++++++++++++++++ SabreTools.DatItems/Formats/Adjuster.cs | 4 +-- SabreTools.DatItems/Formats/Archive.cs | 4 +-- SabreTools.DatItems/Formats/BiosSet.cs | 4 +-- SabreTools.DatItems/Formats/Chip.cs | 4 +-- SabreTools.DatItems/Formats/ConfLocation.cs | 4 +-- SabreTools.DatItems/Formats/ConfSetting.cs | 4 +-- SabreTools.DatItems/Formats/Configuration.cs | 4 +-- SabreTools.DatItems/Formats/DataArea.cs | 4 +-- .../Formats/DeviceReference.cs | 4 +-- SabreTools.DatItems/Formats/DipLocation.cs | 4 +-- SabreTools.DatItems/Formats/DipSwitch.cs | 4 +-- SabreTools.DatItems/Formats/DipValue.cs | 4 +-- SabreTools.DatItems/Formats/Disk.cs | 4 +-- SabreTools.DatItems/Formats/DiskArea.cs | 4 +-- SabreTools.DatItems/Formats/Extension.cs | 4 +-- SabreTools.DatItems/Formats/Info.cs | 4 +-- SabreTools.DatItems/Formats/Instance.cs | 4 +-- SabreTools.DatItems/Formats/Media.cs | 4 +-- SabreTools.DatItems/Formats/Part.cs | 4 +-- SabreTools.DatItems/Formats/PartFeature.cs | 4 +-- SabreTools.DatItems/Formats/RamOption.cs | 4 +-- SabreTools.DatItems/Formats/Release.cs | 4 +-- SabreTools.DatItems/Formats/Rom.cs | 4 +-- SabreTools.DatItems/Formats/Sample.cs | 4 +-- SabreTools.DatItems/Formats/SharedFeature.cs | 4 +-- SabreTools.DatItems/Formats/Slot.cs | 4 +-- SabreTools.DatItems/Formats/SlotOption.cs | 4 +-- SabreTools.DatItems/Formats/SoftwareList.cs | 4 +-- 29 files changed, 90 insertions(+), 56 deletions(-) diff --git a/SabreTools.DatItems/DatItem.cs b/SabreTools.DatItems/DatItem.cs index a497aa91..17e68f49 100644 --- a/SabreTools.DatItems/DatItem.cs +++ b/SabreTools.DatItems/DatItem.cs @@ -160,6 +160,40 @@ namespace SabreTools.DatItems #region Accessors + /// + /// Get the value from a field based on the type provided + /// + /// Type of the value to get from the internal model + /// Field to retrieve + /// Value from the field, if possible + public T? GetFieldValue(string? fieldName) + { + // Invalid field cannot be processed + if (string.IsNullOrEmpty(fieldName)) + return default; + + // Get the value based on the type + return _internal.Read(fieldName!); + } + + /// + /// Set the value from a field based on the type provided + /// + /// Type of the value to set in the internal model + /// Field to set + /// Value to set + /// True if the value was set, false otherwise + public bool SetFieldValue(string? fieldName, T? value) + { + // Invalid field cannot be processed + if (string.IsNullOrEmpty(fieldName)) + return false; + + // Set the value based on the type + _internal[fieldName!] = value; + return true; + } + /// /// Gets the name to use for a DatItem /// diff --git a/SabreTools.DatItems/Formats/Adjuster.cs b/SabreTools.DatItems/Formats/Adjuster.cs index d8f7075d..b4536824 100644 --- a/SabreTools.DatItems/Formats/Adjuster.cs +++ b/SabreTools.DatItems/Formats/Adjuster.cs @@ -55,10 +55,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Adjuster.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Adjuster.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Archive.cs b/SabreTools.DatItems/Formats/Archive.cs index 94eef299..83219b28 100644 --- a/SabreTools.DatItems/Formats/Archive.cs +++ b/SabreTools.DatItems/Formats/Archive.cs @@ -92,10 +92,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Archive.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Archive.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/BiosSet.cs b/SabreTools.DatItems/Formats/BiosSet.cs index 3006a832..9fe1d3ef 100644 --- a/SabreTools.DatItems/Formats/BiosSet.cs +++ b/SabreTools.DatItems/Formats/BiosSet.cs @@ -50,10 +50,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.BiosSet.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.BiosSet.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Chip.cs b/SabreTools.DatItems/Formats/Chip.cs index c66b8ae0..a765e715 100644 --- a/SabreTools.DatItems/Formats/Chip.cs +++ b/SabreTools.DatItems/Formats/Chip.cs @@ -66,10 +66,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Chip.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Chip.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/ConfLocation.cs b/SabreTools.DatItems/Formats/ConfLocation.cs index 7ae3da39..e2b96be2 100644 --- a/SabreTools.DatItems/Formats/ConfLocation.cs +++ b/SabreTools.DatItems/Formats/ConfLocation.cs @@ -53,10 +53,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.ConfLocation.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.ConfLocation.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/ConfSetting.cs b/SabreTools.DatItems/Formats/ConfSetting.cs index 73a30369..2c940103 100644 --- a/SabreTools.DatItems/Formats/ConfSetting.cs +++ b/SabreTools.DatItems/Formats/ConfSetting.cs @@ -65,10 +65,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.ConfSetting.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.ConfSetting.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Configuration.cs b/SabreTools.DatItems/Formats/Configuration.cs index ae09d005..19b38d4a 100644 --- a/SabreTools.DatItems/Formats/Configuration.cs +++ b/SabreTools.DatItems/Formats/Configuration.cs @@ -88,10 +88,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Configuration.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Configuration.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/DataArea.cs b/SabreTools.DatItems/Formats/DataArea.cs index 0bcf4f6a..d6fd9bb7 100644 --- a/SabreTools.DatItems/Formats/DataArea.cs +++ b/SabreTools.DatItems/Formats/DataArea.cs @@ -68,10 +68,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.DataArea.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.DataArea.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/DeviceReference.cs b/SabreTools.DatItems/Formats/DeviceReference.cs index e75bbe8c..2d7e2f51 100644 --- a/SabreTools.DatItems/Formats/DeviceReference.cs +++ b/SabreTools.DatItems/Formats/DeviceReference.cs @@ -27,10 +27,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.DeviceRef.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.DeviceRef.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/DipLocation.cs b/SabreTools.DatItems/Formats/DipLocation.cs index 0c2ddd85..a65c31e2 100644 --- a/SabreTools.DatItems/Formats/DipLocation.cs +++ b/SabreTools.DatItems/Formats/DipLocation.cs @@ -53,10 +53,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.DipLocation.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.DipLocation.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/DipSwitch.cs b/SabreTools.DatItems/Formats/DipSwitch.cs index b05707b7..4be9bf59 100644 --- a/SabreTools.DatItems/Formats/DipSwitch.cs +++ b/SabreTools.DatItems/Formats/DipSwitch.cs @@ -114,10 +114,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.DipSwitch.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.DipSwitch.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/DipValue.cs b/SabreTools.DatItems/Formats/DipValue.cs index f509107d..e7ba3568 100644 --- a/SabreTools.DatItems/Formats/DipValue.cs +++ b/SabreTools.DatItems/Formats/DipValue.cs @@ -65,10 +65,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.DipValue.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.DipValue.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Disk.cs b/SabreTools.DatItems/Formats/Disk.cs index 74db24dc..81a45d52 100644 --- a/SabreTools.DatItems/Formats/Disk.cs +++ b/SabreTools.DatItems/Formats/Disk.cs @@ -171,10 +171,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Disk.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Disk.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/DiskArea.cs b/SabreTools.DatItems/Formats/DiskArea.cs index b01537f9..5a85dd6d 100644 --- a/SabreTools.DatItems/Formats/DiskArea.cs +++ b/SabreTools.DatItems/Formats/DiskArea.cs @@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.DiskArea.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.DiskArea.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Extension.cs b/SabreTools.DatItems/Formats/Extension.cs index bcd469ec..c9cda2c9 100644 --- a/SabreTools.DatItems/Formats/Extension.cs +++ b/SabreTools.DatItems/Formats/Extension.cs @@ -27,10 +27,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Extension.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Extension.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Info.cs b/SabreTools.DatItems/Formats/Info.cs index 46cfcdc8..500fd203 100644 --- a/SabreTools.DatItems/Formats/Info.cs +++ b/SabreTools.DatItems/Formats/Info.cs @@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Info.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Info.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Instance.cs b/SabreTools.DatItems/Formats/Instance.cs index 20df842b..e4b0c798 100644 --- a/SabreTools.DatItems/Formats/Instance.cs +++ b/SabreTools.DatItems/Formats/Instance.cs @@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Instance.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Instance.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Media.cs b/SabreTools.DatItems/Formats/Media.cs index 3161c085..588548c6 100644 --- a/SabreTools.DatItems/Formats/Media.cs +++ b/SabreTools.DatItems/Formats/Media.cs @@ -69,10 +69,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Media.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Media.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Part.cs b/SabreTools.DatItems/Formats/Part.cs index 54881a1e..e4cbb386 100644 --- a/SabreTools.DatItems/Formats/Part.cs +++ b/SabreTools.DatItems/Formats/Part.cs @@ -44,10 +44,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Part.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Part.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/PartFeature.cs b/SabreTools.DatItems/Formats/PartFeature.cs index 8ede2297..b98f5eb2 100644 --- a/SabreTools.DatItems/Formats/PartFeature.cs +++ b/SabreTools.DatItems/Formats/PartFeature.cs @@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Feature.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Feature.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/RamOption.cs b/SabreTools.DatItems/Formats/RamOption.cs index 8ccff07b..a081d863 100644 --- a/SabreTools.DatItems/Formats/RamOption.cs +++ b/SabreTools.DatItems/Formats/RamOption.cs @@ -50,10 +50,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.RamOption.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.RamOption.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Release.cs b/SabreTools.DatItems/Formats/Release.cs index fb37f4d5..d502d823 100644 --- a/SabreTools.DatItems/Formats/Release.cs +++ b/SabreTools.DatItems/Formats/Release.cs @@ -70,10 +70,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Release.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Release.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Rom.cs b/SabreTools.DatItems/Formats/Rom.cs index c3095e3c..1262a55b 100644 --- a/SabreTools.DatItems/Formats/Rom.cs +++ b/SabreTools.DatItems/Formats/Rom.cs @@ -443,10 +443,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Rom.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Rom.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Sample.cs b/SabreTools.DatItems/Formats/Sample.cs index 18a4b8dd..38cf37cd 100644 --- a/SabreTools.DatItems/Formats/Sample.cs +++ b/SabreTools.DatItems/Formats/Sample.cs @@ -27,10 +27,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Sample.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Sample.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/SharedFeature.cs b/SabreTools.DatItems/Formats/SharedFeature.cs index 81d5268f..38eac7a1 100644 --- a/SabreTools.DatItems/Formats/SharedFeature.cs +++ b/SabreTools.DatItems/Formats/SharedFeature.cs @@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.SharedFeat.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.SharedFeat.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/Slot.cs b/SabreTools.DatItems/Formats/Slot.cs index 705a0062..f01cc4c8 100644 --- a/SabreTools.DatItems/Formats/Slot.cs +++ b/SabreTools.DatItems/Formats/Slot.cs @@ -42,10 +42,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.Slot.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.Slot.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/SlotOption.cs b/SabreTools.DatItems/Formats/SlotOption.cs index a0cbb118..a61f6668 100644 --- a/SabreTools.DatItems/Formats/SlotOption.cs +++ b/SabreTools.DatItems/Formats/SlotOption.cs @@ -50,10 +50,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.SlotOption.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.SlotOption.NameKey, name); #endregion diff --git a/SabreTools.DatItems/Formats/SoftwareList.cs b/SabreTools.DatItems/Formats/SoftwareList.cs index 2546ddc7..10b86cef 100644 --- a/SabreTools.DatItems/Formats/SoftwareList.cs +++ b/SabreTools.DatItems/Formats/SoftwareList.cs @@ -70,10 +70,10 @@ namespace SabreTools.DatItems.Formats #region Accessors /// - public override string? GetName() => Name; + public override string? GetName() => GetFieldValue(Models.Metadata.SoftwareList.NameKey); /// - public override void SetName(string? name) => Name = name; + public override void SetName(string? name) => SetFieldValue(Models.Metadata.SoftwareList.NameKey, name); #endregion