diff --git a/SabreTools.DatItems/Formats/Adjuster.cs b/SabreTools.DatItems/Formats/Adjuster.cs index 0e3b8efb..d3c74147 100644 --- a/SabreTools.DatItems/Formats/Adjuster.cs +++ b/SabreTools.DatItems/Formats/Adjuster.cs @@ -48,6 +48,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Adjuster; } + /// + /// Create an Adjuster object from the internal model + /// + public Adjuster(Models.Metadata.Adjuster? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Adjuster; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Analog.cs b/SabreTools.DatItems/Formats/Analog.cs index 33510967..60b2e7fd 100644 --- a/SabreTools.DatItems/Formats/Analog.cs +++ b/SabreTools.DatItems/Formats/Analog.cs @@ -23,6 +23,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Analog; } + /// + /// Create an Analog object from the internal model + /// + public Analog(Models.Metadata.Analog? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Analog; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/BiosSet.cs b/SabreTools.DatItems/Formats/BiosSet.cs index ec777aa9..0d83b79f 100644 --- a/SabreTools.DatItems/Formats/BiosSet.cs +++ b/SabreTools.DatItems/Formats/BiosSet.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.BiosSet; } + /// + /// Create a BiosSet object from the internal model + /// + public BiosSet(Models.Metadata.BiosSet? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.BiosSet; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Chip.cs b/SabreTools.DatItems/Formats/Chip.cs index 77767740..22f50af5 100644 --- a/SabreTools.DatItems/Formats/Chip.cs +++ b/SabreTools.DatItems/Formats/Chip.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Chip; } + /// + /// Create a Chip object from the internal model + /// + public Chip(Models.Metadata.Chip? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Chip; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Condition.cs b/SabreTools.DatItems/Formats/Condition.cs index 537bced2..1c655533 100644 --- a/SabreTools.DatItems/Formats/Condition.cs +++ b/SabreTools.DatItems/Formats/Condition.cs @@ -23,6 +23,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Condition; } + /// + /// Create a Condition object from the internal model + /// + public Condition(Models.Metadata.Condition? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Condition; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/ConfLocation.cs b/SabreTools.DatItems/Formats/ConfLocation.cs index fdf0fe89..63ecedce 100644 --- a/SabreTools.DatItems/Formats/ConfLocation.cs +++ b/SabreTools.DatItems/Formats/ConfLocation.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.ConfLocation; } + /// + /// Create a ConfLocation object from the internal model + /// + public ConfLocation(Models.Metadata.ConfLocation? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.ConfLocation; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/ConfSetting.cs b/SabreTools.DatItems/Formats/ConfSetting.cs index e2a70147..5cdec69a 100644 --- a/SabreTools.DatItems/Formats/ConfSetting.cs +++ b/SabreTools.DatItems/Formats/ConfSetting.cs @@ -48,6 +48,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.ConfSetting; } + /// + /// Create a ConfSetting object from the internal model + /// + public ConfSetting(Models.Metadata.ConfSetting? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.ConfSetting; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Configuration.cs b/SabreTools.DatItems/Formats/Configuration.cs index ab82233e..74a011a1 100644 --- a/SabreTools.DatItems/Formats/Configuration.cs +++ b/SabreTools.DatItems/Formats/Configuration.cs @@ -68,6 +68,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Configuration; } + /// + /// Create a Configuration object from the internal model + /// + public Configuration(Models.Metadata.Configuration? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Configuration; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Control.cs b/SabreTools.DatItems/Formats/Control.cs index 882fd10a..83fbea13 100644 --- a/SabreTools.DatItems/Formats/Control.cs +++ b/SabreTools.DatItems/Formats/Control.cs @@ -23,6 +23,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Control; } + /// + /// Create a Control object from the internal model + /// + public Control(Models.Metadata.Control? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Control; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/DataArea.cs b/SabreTools.DatItems/Formats/DataArea.cs index 8c3e6731..a2ada4a4 100644 --- a/SabreTools.DatItems/Formats/DataArea.cs +++ b/SabreTools.DatItems/Formats/DataArea.cs @@ -35,6 +35,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.DataArea; } + /// + /// Create a DataArea object from the internal model + /// + public DataArea(Models.Metadata.DataArea? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.DataArea; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Device.cs b/SabreTools.DatItems/Formats/Device.cs index a5ca55a2..6a74fa20 100644 --- a/SabreTools.DatItems/Formats/Device.cs +++ b/SabreTools.DatItems/Formats/Device.cs @@ -47,6 +47,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Device; } + /// + /// Create a Device object from the internal model + /// + public Device(Models.Metadata.Device? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Device; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/DeviceReference.cs b/SabreTools.DatItems/Formats/DeviceReference.cs index 3db0749b..7e400cd0 100644 --- a/SabreTools.DatItems/Formats/DeviceReference.cs +++ b/SabreTools.DatItems/Formats/DeviceReference.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.DeviceReference; } + /// + /// Create a DeviceReference object from the internal model + /// + public DeviceReference(Models.Metadata.DeviceRef? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.DeviceReference; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/DipLocation.cs b/SabreTools.DatItems/Formats/DipLocation.cs index 58637890..9dd61add 100644 --- a/SabreTools.DatItems/Formats/DipLocation.cs +++ b/SabreTools.DatItems/Formats/DipLocation.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.DipLocation; } + /// + /// Create a DipLocation object from the internal model + /// + public DipLocation(Models.Metadata.DipLocation? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.DipLocation; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/DipSwitch.cs b/SabreTools.DatItems/Formats/DipSwitch.cs index 9e442ab1..d3fdb897 100644 --- a/SabreTools.DatItems/Formats/DipSwitch.cs +++ b/SabreTools.DatItems/Formats/DipSwitch.cs @@ -80,6 +80,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.DipSwitch; } + /// + /// Create a DipSwitch object from the internal model + /// + public DipSwitch(Models.Metadata.DipSwitch? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.DipSwitch; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/DipValue.cs b/SabreTools.DatItems/Formats/DipValue.cs index 68ef3461..7e0c0100 100644 --- a/SabreTools.DatItems/Formats/DipValue.cs +++ b/SabreTools.DatItems/Formats/DipValue.cs @@ -48,6 +48,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.DipValue; } + /// + /// Create a DipValue object from the internal model + /// + public DipValue(Models.Metadata.DipValue? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.DipValue; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Disk.cs b/SabreTools.DatItems/Formats/Disk.cs index 68d5f813..528e3533 100644 --- a/SabreTools.DatItems/Formats/Disk.cs +++ b/SabreTools.DatItems/Formats/Disk.cs @@ -81,6 +81,17 @@ namespace SabreTools.DatItems.Formats SetFieldValue(Models.Metadata.Disk.StatusKey, ItemStatus.None); } + /// + /// Create a Disk object from the internal model + /// + public Disk(Models.Metadata.Disk? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Disk; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/DiskArea.cs b/SabreTools.DatItems/Formats/DiskArea.cs index b5b54884..fdf4adfa 100644 --- a/SabreTools.DatItems/Formats/DiskArea.cs +++ b/SabreTools.DatItems/Formats/DiskArea.cs @@ -35,6 +35,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.DiskArea; } + /// + /// Create a DiskArea object from the internal model + /// + public DiskArea(Models.Metadata.DiskArea? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.DiskArea; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Display.cs b/SabreTools.DatItems/Formats/Display.cs index 3c0e7397..d46e300e 100644 --- a/SabreTools.DatItems/Formats/Display.cs +++ b/SabreTools.DatItems/Formats/Display.cs @@ -23,6 +23,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Display; } + /// + /// Create a Display object from the internal model + /// + public Display(Models.Metadata.Display? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Display; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Driver.cs b/SabreTools.DatItems/Formats/Driver.cs index 7d06aae5..0ecbd6e9 100644 --- a/SabreTools.DatItems/Formats/Driver.cs +++ b/SabreTools.DatItems/Formats/Driver.cs @@ -26,6 +26,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Driver; } + /// + /// Create a Driver object from the internal model + /// + public Driver(Models.Metadata.Driver? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Driver; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Extension.cs b/SabreTools.DatItems/Formats/Extension.cs index b5223fbd..5793c14f 100644 --- a/SabreTools.DatItems/Formats/Extension.cs +++ b/SabreTools.DatItems/Formats/Extension.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Extension; } + /// + /// Create an Extension object from the internal model + /// + public Extension(Models.Metadata.Extension? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Extension; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Feature.cs b/SabreTools.DatItems/Formats/Feature.cs index 0ca01240..3e5923dc 100644 --- a/SabreTools.DatItems/Formats/Feature.cs +++ b/SabreTools.DatItems/Formats/Feature.cs @@ -23,6 +23,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Feature; } + /// + /// Create a Feature object from the internal model + /// + public Feature(Models.Metadata.Feature? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Feature; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Info.cs b/SabreTools.DatItems/Formats/Info.cs index 3be6ed29..e29296eb 100644 --- a/SabreTools.DatItems/Formats/Info.cs +++ b/SabreTools.DatItems/Formats/Info.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Info; } + /// + /// Create an Info object from the internal model + /// + public Info(Models.Metadata.Info? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Info; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Input.cs b/SabreTools.DatItems/Formats/Input.cs index 1a15df1d..f31cf2f8 100644 --- a/SabreTools.DatItems/Formats/Input.cs +++ b/SabreTools.DatItems/Formats/Input.cs @@ -37,6 +37,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Input; } + /// + /// Create an Input object from the internal model + /// + public Input(Models.Metadata.Input? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Input; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Instance.cs b/SabreTools.DatItems/Formats/Instance.cs index 7653596c..d3ab2d6a 100644 --- a/SabreTools.DatItems/Formats/Instance.cs +++ b/SabreTools.DatItems/Formats/Instance.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Instance; } + /// + /// Create an Instance object from the internal model + /// + public Instance(Models.Metadata.Instance? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Instance; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Media.cs b/SabreTools.DatItems/Formats/Media.cs index fccebd68..a1f20a4d 100644 --- a/SabreTools.DatItems/Formats/Media.cs +++ b/SabreTools.DatItems/Formats/Media.cs @@ -37,6 +37,18 @@ namespace SabreTools.DatItems.Formats DupeType = 0x00; } + /// + /// Create a Media object from the internal model + /// + public Media(Models.Metadata.Media? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Media; + DupeType = 0x00; + } + /// /// Create a Media object from a BaseFile /// diff --git a/SabreTools.DatItems/Formats/Part.cs b/SabreTools.DatItems/Formats/Part.cs index e62c15bc..a53f26a1 100644 --- a/SabreTools.DatItems/Formats/Part.cs +++ b/SabreTools.DatItems/Formats/Part.cs @@ -49,6 +49,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Part; } + /// + /// Create a Part object from the internal model + /// + public Part(Models.Metadata.Part? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Part; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/PartFeature.cs b/SabreTools.DatItems/Formats/PartFeature.cs index a762a750..7aa9fdc3 100644 --- a/SabreTools.DatItems/Formats/PartFeature.cs +++ b/SabreTools.DatItems/Formats/PartFeature.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.PartFeature; } + /// + /// Create a PartFeature object from the internal model + /// + public PartFeature(Models.Metadata.Feature? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.PartFeature; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Port.cs b/SabreTools.DatItems/Formats/Port.cs index 67bc7459..57d7b7a2 100644 --- a/SabreTools.DatItems/Formats/Port.cs +++ b/SabreTools.DatItems/Formats/Port.cs @@ -37,6 +37,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Port; } + /// + /// Create a Port object from the internal model + /// + public Port(Models.Metadata.Port? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Port; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/RamOption.cs b/SabreTools.DatItems/Formats/RamOption.cs index aba44c74..c3dd7ae6 100644 --- a/SabreTools.DatItems/Formats/RamOption.cs +++ b/SabreTools.DatItems/Formats/RamOption.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.RamOption; } + /// + /// Create a RamOption object from the internal model + /// + public RamOption(Models.Metadata.RamOption? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.RamOption; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Release.cs b/SabreTools.DatItems/Formats/Release.cs index 56d98934..6a4eb864 100644 --- a/SabreTools.DatItems/Formats/Release.cs +++ b/SabreTools.DatItems/Formats/Release.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Release; } + /// + /// Create a Release object from the internal model + /// + public Release(Models.Metadata.Release? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Release; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Rom.cs b/SabreTools.DatItems/Formats/Rom.cs index 422f7df9..b3723bb1 100644 --- a/SabreTools.DatItems/Formats/Rom.cs +++ b/SabreTools.DatItems/Formats/Rom.cs @@ -137,13 +137,13 @@ namespace SabreTools.DatItems.Formats /// /// Create a Rom object from the internal model /// - public Rom(Models.Metadata.Rom? rom) + public Rom(Models.Metadata.Rom? item) { - _internal = rom ?? []; + _internal = item ?? []; + Machine = new Machine(); ItemType = ItemType.Rom; DupeType = 0x00; - SetFieldValue(Models.Metadata.Rom.StatusKey, ItemStatus.None); } #endregion diff --git a/SabreTools.DatItems/Formats/Sample.cs b/SabreTools.DatItems/Formats/Sample.cs index fe8f606e..ff455c7b 100644 --- a/SabreTools.DatItems/Formats/Sample.cs +++ b/SabreTools.DatItems/Formats/Sample.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Sample; } + /// + /// Create a Sample object from the internal model + /// + public Sample(Models.Metadata.Sample? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Sample; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/SharedFeature.cs b/SabreTools.DatItems/Formats/SharedFeature.cs index 1afc67d8..4315d362 100644 --- a/SabreTools.DatItems/Formats/SharedFeature.cs +++ b/SabreTools.DatItems/Formats/SharedFeature.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.SharedFeature; } + /// + /// Create a SharedFeature object from the internal model + /// + public SharedFeature(Models.Metadata.SharedFeat? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.SharedFeature; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Slot.cs b/SabreTools.DatItems/Formats/Slot.cs index 0a5a462f..a92d91d6 100644 --- a/SabreTools.DatItems/Formats/Slot.cs +++ b/SabreTools.DatItems/Formats/Slot.cs @@ -48,6 +48,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Slot; } + /// + /// Create a Slot object from the internal model + /// + public Slot(Models.Metadata.Slot? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Slot; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/SlotOption.cs b/SabreTools.DatItems/Formats/SlotOption.cs index 1d8a9fc1..f988d28a 100644 --- a/SabreTools.DatItems/Formats/SlotOption.cs +++ b/SabreTools.DatItems/Formats/SlotOption.cs @@ -34,6 +34,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.SlotOption; } + /// + /// Create a SlotOption object from the internal model + /// + public SlotOption(Models.Metadata.SlotOption? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.SlotOption; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/SoftwareList.cs b/SabreTools.DatItems/Formats/SoftwareList.cs index cafa3d0f..5cedf811 100644 --- a/SabreTools.DatItems/Formats/SoftwareList.cs +++ b/SabreTools.DatItems/Formats/SoftwareList.cs @@ -37,6 +37,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.SoftwareList; } + /// + /// Create a SoftwareList object from the internal model + /// + public SoftwareList(Models.Metadata.SoftwareList? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.SoftwareList; + } + #endregion #region Cloning Methods diff --git a/SabreTools.DatItems/Formats/Sound.cs b/SabreTools.DatItems/Formats/Sound.cs index 2eb92d42..54f6384b 100644 --- a/SabreTools.DatItems/Formats/Sound.cs +++ b/SabreTools.DatItems/Formats/Sound.cs @@ -23,6 +23,17 @@ namespace SabreTools.DatItems.Formats ItemType = ItemType.Sound; } + /// + /// Create a Sound object from the internal model + /// + public Sound(Models.Metadata.Sound? item) + { + _internal = item ?? []; + Machine = new Machine(); + + ItemType = ItemType.Sound; + } + #endregion #region Cloning Methods