Add new helper methods to DatItem

This commit is contained in:
Matt Nadareski
2024-03-08 15:31:21 -05:00
parent f25f62574a
commit 71dcc04558
29 changed files with 90 additions and 56 deletions

View File

@@ -160,6 +160,40 @@ namespace SabreTools.DatItems
#region Accessors #region Accessors
/// <summary>
/// Get the value from a field based on the type provided
/// </summary>
/// <typeparam name="T">Type of the value to get from the internal model</typeparam>
/// <param name="fieldName">Field to retrieve</param>
/// <returns>Value from the field, if possible</returns>
public T? GetFieldValue<T>(string? fieldName)
{
// Invalid field cannot be processed
if (string.IsNullOrEmpty(fieldName))
return default;
// Get the value based on the type
return _internal.Read<T>(fieldName!);
}
/// <summary>
/// Set the value from a field based on the type provided
/// </summary>
/// <typeparam name="T">Type of the value to set in the internal model</typeparam>
/// <param name="fieldName">Field to set</param>
/// <param name="value">Value to set</param>
/// <returns>True if the value was set, false otherwise</returns>
public bool SetFieldValue<T>(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;
}
/// <summary> /// <summary>
/// Gets the name to use for a DatItem /// Gets the name to use for a DatItem
/// </summary> /// </summary>

View File

@@ -55,10 +55,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Adjuster.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Adjuster.NameKey, name);
#endregion #endregion

View File

@@ -92,10 +92,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Archive.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Archive.NameKey, name);
#endregion #endregion

View File

@@ -50,10 +50,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.BiosSet.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.BiosSet.NameKey, name);
#endregion #endregion

View File

@@ -66,10 +66,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Chip.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Chip.NameKey, name);
#endregion #endregion

View File

@@ -53,10 +53,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.ConfLocation.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.ConfLocation.NameKey, name);
#endregion #endregion

View File

@@ -65,10 +65,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.ConfSetting.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.ConfSetting.NameKey, name);
#endregion #endregion

View File

@@ -88,10 +88,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Configuration.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Configuration.NameKey, name);
#endregion #endregion

View File

@@ -68,10 +68,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.DataArea.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.DataArea.NameKey, name);
#endregion #endregion

View File

@@ -27,10 +27,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.DeviceRef.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.DeviceRef.NameKey, name);
#endregion #endregion

View File

@@ -53,10 +53,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.DipLocation.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.DipLocation.NameKey, name);
#endregion #endregion

View File

@@ -114,10 +114,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.DipSwitch.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.DipSwitch.NameKey, name);
#endregion #endregion

View File

@@ -65,10 +65,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.DipValue.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.DipValue.NameKey, name);
#endregion #endregion

View File

@@ -171,10 +171,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Disk.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Disk.NameKey, name);
#endregion #endregion

View File

@@ -28,10 +28,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.DiskArea.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.DiskArea.NameKey, name);
#endregion #endregion

View File

@@ -27,10 +27,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Extension.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Extension.NameKey, name);
#endregion #endregion

View File

@@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Info.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Info.NameKey, name);
#endregion #endregion

View File

@@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Instance.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Instance.NameKey, name);
#endregion #endregion

View File

@@ -69,10 +69,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Media.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Media.NameKey, name);
#endregion #endregion

View File

@@ -44,10 +44,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Part.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Part.NameKey, name);
#endregion #endregion

View File

@@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Feature.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Feature.NameKey, name);
#endregion #endregion

View File

@@ -50,10 +50,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.RamOption.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.RamOption.NameKey, name);
#endregion #endregion

View File

@@ -70,10 +70,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Release.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Release.NameKey, name);
#endregion #endregion

View File

@@ -443,10 +443,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Rom.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Rom.NameKey, name);
#endregion #endregion

View File

@@ -27,10 +27,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Sample.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Sample.NameKey, name);
#endregion #endregion

View File

@@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.SharedFeat.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.SharedFeat.NameKey, name);
#endregion #endregion

View File

@@ -42,10 +42,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.Slot.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.Slot.NameKey, name);
#endregion #endregion

View File

@@ -50,10 +50,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.SlotOption.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.SlotOption.NameKey, name);
#endregion #endregion

View File

@@ -70,10 +70,10 @@ namespace SabreTools.DatItems.Formats
#region Accessors #region Accessors
/// <inheritdoc/> /// <inheritdoc/>
public override string? GetName() => Name; public override string? GetName() => GetFieldValue<string>(Models.Metadata.SoftwareList.NameKey);
/// <inheritdoc/> /// <inheritdoc/>
public override void SetName(string? name) => Name = name; public override void SetName(string? name) => SetFieldValue(Models.Metadata.SoftwareList.NameKey, name);
#endregion #endregion