Force internal model constructors to be non-null

This commit is contained in:
Matt Nadareski
2024-03-10 17:00:11 -04:00
parent e411d90822
commit 0af9a0cf47
38 changed files with 80 additions and 80 deletions

View File

@@ -51,9 +51,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create an Adjuster object from the internal model
/// </summary>
public Adjuster(Models.Metadata.Adjuster? item)
public Adjuster(Models.Metadata.Adjuster item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Adjuster);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -26,9 +26,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create an Analog object from the internal model
/// </summary>
public Analog(Models.Metadata.Analog? item)
public Analog(Models.Metadata.Analog item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Analog);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -106,9 +106,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create an Archive object from the internal model
/// </summary>
public Archive(Models.Metadata.Archive? item)
public Archive(Models.Metadata.Archive item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Archive);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a BiosSet object from the internal model
/// </summary>
public BiosSet(Models.Metadata.BiosSet? item)
public BiosSet(Models.Metadata.BiosSet item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.BiosSet);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Chip object from the internal model
/// </summary>
public Chip(Models.Metadata.Chip? item)
public Chip(Models.Metadata.Chip item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Chip);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -26,9 +26,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Condition object from the internal model
/// </summary>
public Condition(Models.Metadata.Condition? item)
public Condition(Models.Metadata.Condition item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Condition);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a ConfLocation object from the internal model
/// </summary>
public ConfLocation(Models.Metadata.ConfLocation? item)
public ConfLocation(Models.Metadata.ConfLocation item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ConfLocation);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -51,9 +51,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a ConfSetting object from the internal model
/// </summary>
public ConfSetting(Models.Metadata.ConfSetting? item)
public ConfSetting(Models.Metadata.ConfSetting item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.ConfSetting);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -71,9 +71,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Configuration object from the internal model
/// </summary>
public Configuration(Models.Metadata.Configuration? item)
public Configuration(Models.Metadata.Configuration item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Configuration);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -26,9 +26,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Control object from the internal model
/// </summary>
public Control(Models.Metadata.Control? item)
public Control(Models.Metadata.Control item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Control);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -38,9 +38,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a DataArea object from the internal model
/// </summary>
public DataArea(Models.Metadata.DataArea? item)
public DataArea(Models.Metadata.DataArea item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DataArea);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -50,9 +50,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Device object from the internal model
/// </summary>
public Device(Models.Metadata.Device? item)
public Device(Models.Metadata.Device item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Device);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a DeviceReference object from the internal model
/// </summary>
public DeviceReference(Models.Metadata.DeviceRef? item)
public DeviceReference(Models.Metadata.DeviceRef item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DeviceReference);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a DipLocation object from the internal model
/// </summary>
public DipLocation(Models.Metadata.DipLocation? item)
public DipLocation(Models.Metadata.DipLocation item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipLocation);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -92,9 +92,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a DipSwitch object from the internal model
/// </summary>
public DipSwitch(Models.Metadata.DipSwitch? item)
public DipSwitch(Models.Metadata.DipSwitch item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipSwitch);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -51,9 +51,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a DipValue object from the internal model
/// </summary>
public DipValue(Models.Metadata.DipValue? item)
public DipValue(Models.Metadata.DipValue item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DipValue);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -98,9 +98,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Disk object from the internal model
/// </summary>
public Disk(Models.Metadata.Disk? item)
public Disk(Models.Metadata.Disk item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Disk);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
@@ -139,7 +139,7 @@ namespace SabreTools.DatItems.Formats
/// <returns></returns>
public Rom ConvertToRom()
{
var rom = new Rom(_internal.ConvertToRom());
var rom = new Rom(_internal.ConvertToRom()!);
rom.GetFieldValue<DataArea?>(Rom.DataAreaKey)?.SetName(this.GetFieldValue<DiskArea?>(Disk.DiskAreaKey)?.GetName());
rom.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
rom.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey)!.Clone() as Machine ?? new Machine());

View File

@@ -38,9 +38,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a DiskArea object from the internal model
/// </summary>
public DiskArea(Models.Metadata.DiskArea? item)
public DiskArea(Models.Metadata.DiskArea item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.DiskArea);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -26,9 +26,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Display object from the internal model
/// </summary>
public Display(Models.Metadata.Display? item)
public Display(Models.Metadata.Display item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Display);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());
@@ -37,10 +37,10 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Display object from the internal model
/// </summary>
public Display(Models.Metadata.Video? item)
public Display(Models.Metadata.Video item)
{
// TODO: Determine what transformation is needed here
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Display);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -29,9 +29,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Driver object from the internal model
/// </summary>
public Driver(Models.Metadata.Driver? item)
public Driver(Models.Metadata.Driver item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Driver);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create an Extension object from the internal model
/// </summary>
public Extension(Models.Metadata.Extension? item)
public Extension(Models.Metadata.Extension item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Extension);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -26,9 +26,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Feature object from the internal model
/// </summary>
public Feature(Models.Metadata.Feature? item)
public Feature(Models.Metadata.Feature item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Feature);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create an Info object from the internal model
/// </summary>
public Info(Models.Metadata.Info? item)
public Info(Models.Metadata.Info item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Info);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create an Input object from the internal model
/// </summary>
public Input(Models.Metadata.Input? item)
public Input(Models.Metadata.Input item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Input);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create an Instance object from the internal model
/// </summary>
public Instance(Models.Metadata.Instance? item)
public Instance(Models.Metadata.Instance item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Instance);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Media object from the internal model
/// </summary>
public Media(Models.Metadata.Media? item)
public Media(Models.Metadata.Media item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Media);
SetFieldValue<DupeType>(DatItem.DupeTypeKey, 0x00);
@@ -103,7 +103,7 @@ namespace SabreTools.DatItems.Formats
/// <returns></returns>
public Rom ConvertToRom()
{
var rom = new Rom(_internal.ConvertToRom());
var rom = new Rom(_internal.ConvertToRom()!);
rom.SetFieldValue<DupeType>(DatItem.DupeTypeKey, GetFieldValue<DupeType>(DatItem.DupeTypeKey));
rom.SetFieldValue<Machine>(DatItem.MachineKey, GetFieldValue<Machine>(DatItem.MachineKey));
rom.SetFieldValue<bool>(DatItem.RemoveKey, GetFieldValue<bool>(DatItem.RemoveKey));

View File

@@ -52,9 +52,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Part object from the internal model
/// </summary>
public Part(Models.Metadata.Part? item)
public Part(Models.Metadata.Part item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Part);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a PartFeature object from the internal model
/// </summary>
public PartFeature(Models.Metadata.Feature? item)
public PartFeature(Models.Metadata.Feature item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.PartFeature);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Port object from the internal model
/// </summary>
public Port(Models.Metadata.Port? item)
public Port(Models.Metadata.Port item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Port);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a RamOption object from the internal model
/// </summary>
public RamOption(Models.Metadata.RamOption? item)
public RamOption(Models.Metadata.RamOption item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.RamOption);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Release object from the internal model
/// </summary>
public Release(Models.Metadata.Release? item)
public Release(Models.Metadata.Release item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Release);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -149,9 +149,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Rom object from the internal model
/// </summary>
public Rom(Models.Metadata.Rom? item)
public Rom(Models.Metadata.Rom item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Rom);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Sample object from the internal model
/// </summary>
public Sample(Models.Metadata.Sample? item)
public Sample(Models.Metadata.Sample item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Sample);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a SharedFeature object from the internal model
/// </summary>
public SharedFeature(Models.Metadata.SharedFeat? item)
public SharedFeature(Models.Metadata.SharedFeat item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SharedFeature);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -51,9 +51,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Slot object from the internal model
/// </summary>
public Slot(Models.Metadata.Slot? item)
public Slot(Models.Metadata.Slot item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Slot);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -37,9 +37,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a SlotOption object from the internal model
/// </summary>
public SlotOption(Models.Metadata.SlotOption? item)
public SlotOption(Models.Metadata.SlotOption item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SlotOption);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -40,9 +40,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a SoftwareList object from the internal model
/// </summary>
public SoftwareList(Models.Metadata.SoftwareList? item)
public SoftwareList(Models.Metadata.SoftwareList item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.SoftwareList);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());

View File

@@ -26,9 +26,9 @@ namespace SabreTools.DatItems.Formats
/// <summary>
/// Create a Sound object from the internal model
/// </summary>
public Sound(Models.Metadata.Sound? item)
public Sound(Models.Metadata.Sound item)
{
_internal = item ?? [];
_internal = item;
SetFieldValue<ItemType>(Models.Metadata.DatItem.TypeKey, ItemType.Sound);
SetFieldValue<Machine>(DatItem.MachineKey, new Machine());