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