mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-22 23:05:12 +00:00
Streamline metadata cloning
This commit is contained in:
@@ -35,6 +35,12 @@ namespace SabreTools.Metadata.DatItems.Test
|
||||
_internal = _internal.DeepClone() as TestDatItemModel ?? []
|
||||
};
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override TestDatItemModel GetInternalClone()
|
||||
{
|
||||
return _internal.DeepClone() as TestDatItemModel ?? [];
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override string? GetName() => _nameKey is not null ? _internal.ReadString(_nameKey) : null;
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems
|
||||
{
|
||||
@@ -38,7 +37,7 @@ namespace SabreTools.Metadata.DatItems
|
||||
/// <summary>
|
||||
/// Get a clone of the current internal model
|
||||
/// </summary>
|
||||
public virtual T GetInternalClone() => (_internal.DeepClone() as T)!;
|
||||
public abstract T GetInternalClone();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -67,12 +66,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Adjuster(_internal.DeepClone() as Data.Models.Metadata.Adjuster ?? []);
|
||||
public override object Clone() => new Adjuster(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Adjuster GetInternalClone()
|
||||
{
|
||||
var adjusterItem = base.GetInternalClone();
|
||||
var adjusterItem = (_internal as Data.Models.Metadata.Adjuster)?.Clone() as Data.Models.Metadata.Adjuster ?? [];
|
||||
|
||||
if (Condition is not null)
|
||||
adjusterItem.Condition = Condition.GetInternalClone();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -51,7 +50,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Analog(_internal.DeepClone() as Data.Models.Metadata.Analog ?? []);
|
||||
public override object Clone() => new Analog(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Analog GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Analog)?.Clone() as Data.Models.Metadata.Analog ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -242,7 +241,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Archive(_internal.DeepClone() as Data.Models.Metadata.Archive ?? []);
|
||||
public override object Clone() => new Archive(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Archive GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Archive)?.Clone() as Data.Models.Metadata.Archive ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -63,7 +62,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new BiosSet(_internal.DeepClone() as Data.Models.Metadata.BiosSet ?? []);
|
||||
public override object Clone() => new BiosSet(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.BiosSet GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.BiosSet)?.Clone() as Data.Models.Metadata.BiosSet ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -45,7 +44,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Blank(_internal.DeepClone() as Data.Models.Metadata.Blank ?? []);
|
||||
public override object Clone() => new Blank(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Blank GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Blank)?.Clone() as Data.Models.Metadata.Blank ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -81,7 +80,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Chip(_internal.DeepClone() as Data.Models.Metadata.Chip ?? []);
|
||||
public override object Clone() => new Chip(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Chip GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Chip)?.Clone() as Data.Models.Metadata.Chip ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -69,7 +68,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Condition(_internal.DeepClone() as Data.Models.Metadata.Condition ?? []);
|
||||
public override object Clone() => new Condition(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Condition GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Condition)?.Clone() as Data.Models.Metadata.Condition ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -63,7 +62,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new ConfLocation(_internal.DeepClone() as Data.Models.Metadata.ConfLocation ?? []);
|
||||
public override object Clone() => new ConfLocation(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.ConfLocation GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.ConfLocation)?.Clone() as Data.Models.Metadata.ConfLocation ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -73,12 +72,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new ConfSetting(_internal.DeepClone() as Data.Models.Metadata.ConfSetting ?? []);
|
||||
public override object Clone() => new ConfSetting(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.ConfSetting GetInternalClone()
|
||||
{
|
||||
var confSettingItem = base.GetInternalClone();
|
||||
var confSettingItem = (_internal as Data.Models.Metadata.ConfSetting)?.Clone() as Data.Models.Metadata.ConfSetting ?? [];
|
||||
|
||||
if (Condition is not null)
|
||||
confSettingItem.Condition = Condition.GetInternalClone();
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -90,12 +89,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Configuration(_internal.DeepClone() as Data.Models.Metadata.Configuration ?? []);
|
||||
public override object Clone() => new Configuration(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Configuration GetInternalClone()
|
||||
{
|
||||
var configurationItem = base.GetInternalClone();
|
||||
var configurationItem = (_internal as Data.Models.Metadata.Configuration)?.Clone() as Data.Models.Metadata.Configuration ?? [];
|
||||
|
||||
if (Condition is not null)
|
||||
configurationItem.Condition = Condition.GetInternalClone();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -117,7 +116,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Control(_internal.DeepClone() as Data.Models.Metadata.Control ?? []);
|
||||
public override object Clone() => new Control(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Control GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Control)?.Clone() as Data.Models.Metadata.Control ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -81,11 +80,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new DataArea(_internal.DeepClone() as Data.Models.Metadata.DataArea ?? []);
|
||||
public override object Clone() => new DataArea(GetInternalClone());
|
||||
|
||||
public override Data.Models.Metadata.DataArea GetInternalClone()
|
||||
{
|
||||
var partItem = base.GetInternalClone();
|
||||
var partItem = (_internal as Data.Models.Metadata.DataArea)?.Clone() as Data.Models.Metadata.DataArea ?? [];
|
||||
|
||||
if (Rom is not null)
|
||||
partItem.Rom = Array.ConvertAll(Rom, rom => rom.GetInternalClone());
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -94,12 +93,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Device(_internal.DeepClone() as Data.Models.Metadata.Device ?? []);
|
||||
public override object Clone() => new Device(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Device GetInternalClone()
|
||||
{
|
||||
var deviceItem = base.GetInternalClone();
|
||||
var deviceItem = (_internal as Data.Models.Metadata.Device)?.Clone() as Data.Models.Metadata.Device ?? [];
|
||||
|
||||
deviceItem.DeviceType = DeviceType;
|
||||
deviceItem.FixedImage = FixedImage;
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -51,7 +50,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new DeviceRef(_internal.DeepClone() as Data.Models.Metadata.DeviceRef ?? []);
|
||||
public override object Clone() => new DeviceRef(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.DeviceRef GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.DeviceRef)?.Clone() as Data.Models.Metadata.DeviceRef ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -63,7 +62,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new DipLocation(_internal.DeepClone() as Data.Models.Metadata.DipLocation ?? []);
|
||||
public override object Clone() => new DipLocation(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.DipLocation GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.DipLocation)?.Clone() as Data.Models.Metadata.DipLocation ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -117,12 +116,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new DipSwitch(_internal.DeepClone() as Data.Models.Metadata.DipSwitch ?? []);
|
||||
public override object Clone() => new DipSwitch(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.DipSwitch GetInternalClone()
|
||||
{
|
||||
var dipSwitchItem = base.GetInternalClone();
|
||||
var dipSwitchItem = (_internal as Data.Models.Metadata.DipSwitch)?.Clone() as Data.Models.Metadata.DipSwitch ?? [];
|
||||
|
||||
if (Condition is not null)
|
||||
dipSwitchItem.Condition = Condition.GetInternalClone();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -73,12 +72,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new DipValue(_internal.DeepClone() as Data.Models.Metadata.DipValue ?? []);
|
||||
public override object Clone() => new DipValue(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.DipValue GetInternalClone()
|
||||
{
|
||||
var dipValueItem = base.GetInternalClone();
|
||||
var dipValueItem = (_internal as Data.Models.Metadata.DipValue)?.Clone() as Data.Models.Metadata.DipValue ?? [];
|
||||
|
||||
if (Condition is not null)
|
||||
dipValueItem.Condition = Condition.GetInternalClone();
|
||||
|
||||
@@ -139,7 +139,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Disk(_internal.DeepClone() as Data.Models.Metadata.Disk ?? []);
|
||||
public override object Clone() => new Disk(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Disk GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Disk)?.Clone() as Data.Models.Metadata.Disk ?? [];
|
||||
|
||||
/// <summary>
|
||||
/// Convert a disk to the closest Rom approximation
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -63,11 +62,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new DiskArea(_internal.DeepClone() as Data.Models.Metadata.DiskArea ?? []);
|
||||
public override object Clone() => new DiskArea(GetInternalClone());
|
||||
|
||||
public override Data.Models.Metadata.DiskArea GetInternalClone()
|
||||
{
|
||||
var partItem = base.GetInternalClone();
|
||||
var partItem = (_internal as Data.Models.Metadata.DiskArea)?.Clone() as Data.Models.Metadata.DiskArea ?? [];
|
||||
|
||||
if (Disk is not null)
|
||||
partItem.Disk = Array.ConvertAll(Disk, rom => rom.GetInternalClone());
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -158,7 +157,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Display(_internal.DeepClone() as Data.Models.Metadata.Display ?? []);
|
||||
public override object Clone() => new Display(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Display GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Display)?.Clone() as Data.Models.Metadata.Display ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -117,7 +116,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Driver(_internal.DeepClone() as Data.Models.Metadata.Driver ?? []);
|
||||
public override object Clone() => new Driver(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Driver GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Driver)?.Clone() as Data.Models.Metadata.Driver ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -51,7 +50,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Extension(_internal.DeepClone() as Data.Models.Metadata.Extension ?? []);
|
||||
public override object Clone() => new Extension(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Extension GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Extension)?.Clone() as Data.Models.Metadata.Extension ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -75,7 +74,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Feature(_internal.DeepClone() as Data.Models.Metadata.Feature ?? []);
|
||||
public override object Clone() => new Feature(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Feature GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Feature)?.Clone() as Data.Models.Metadata.Feature ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -57,7 +56,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Info(_internal.DeepClone() as Data.Models.Metadata.Info ?? []);
|
||||
public override object Clone() => new Info(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Info GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Info)?.Clone() as Data.Models.Metadata.Info ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -92,12 +91,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Input(_internal.DeepClone() as Data.Models.Metadata.Input ?? []);
|
||||
public override object Clone() => new Input(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Input GetInternalClone()
|
||||
{
|
||||
var inputItem = base.GetInternalClone();
|
||||
var inputItem = (_internal as Data.Models.Metadata.Input)?.Clone() as Data.Models.Metadata.Input ?? [];
|
||||
|
||||
if (Control is not null)
|
||||
inputItem.Control = Array.ConvertAll(Control, control => control.GetInternalClone());
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -57,7 +56,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Instance(_internal.DeepClone() as Data.Models.Metadata.Instance ?? []);
|
||||
public override object Clone() => new Instance(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Instance GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Instance)?.Clone() as Data.Models.Metadata.Instance ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -92,7 +92,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Media(_internal.DeepClone() as Data.Models.Metadata.Media ?? []);
|
||||
public override object Clone() => new Media(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Media GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Media)?.Clone() as Data.Models.Metadata.Media ?? [];
|
||||
|
||||
/// <summary>
|
||||
/// Convert a media to the closest Rom approximation
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -93,12 +92,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Part(_internal.DeepClone() as Data.Models.Metadata.Part ?? []);
|
||||
public override object Clone() => new Part(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Part GetInternalClone()
|
||||
{
|
||||
var partItem = base.GetInternalClone();
|
||||
var partItem = (_internal as Data.Models.Metadata.Part)?.Clone() as Data.Models.Metadata.Part ?? [];
|
||||
|
||||
if (DataArea is not null)
|
||||
partItem.DataArea = Array.ConvertAll(DataArea, dataArea => dataArea.GetInternalClone());
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -80,7 +79,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new PartFeature(_internal.DeepClone() as Data.Models.Metadata.Feature ?? []);
|
||||
public override object Clone() => new PartFeature(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Feature GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Feature)?.Clone() as Data.Models.Metadata.Feature ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -62,12 +61,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Port(_internal.DeepClone() as Data.Models.Metadata.Port ?? []);
|
||||
public override object Clone() => new Port(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Port GetInternalClone()
|
||||
{
|
||||
var portItem = base.GetInternalClone();
|
||||
var portItem = (_internal as Data.Models.Metadata.Port)?.Clone() as Data.Models.Metadata.Port ?? [];
|
||||
|
||||
if (Analog is not null)
|
||||
portItem.Analog = Array.ConvertAll(Analog, analog => analog.GetInternalClone());
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -63,7 +62,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new RamOption(_internal.DeepClone() as Data.Models.Metadata.RamOption ?? []);
|
||||
public override object Clone() => new RamOption(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.RamOption GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.RamOption)?.Clone() as Data.Models.Metadata.RamOption ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -75,7 +74,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Release(_internal.DeepClone() as Data.Models.Metadata.Release ?? []);
|
||||
public override object Clone() => new Release(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Release GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Release)?.Clone() as Data.Models.Metadata.Release ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -140,7 +139,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new ReleaseDetails(_internal.DeepClone() as Data.Models.Metadata.ReleaseDetails ?? []);
|
||||
public override object Clone() => new ReleaseDetails(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.ReleaseDetails GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.ReleaseDetails)?.Clone() as Data.Models.Metadata.ReleaseDetails ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -402,7 +402,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Rom(_internal.DeepClone() as Data.Models.Metadata.Rom ?? []);
|
||||
public override object Clone() => new Rom(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Rom GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Rom)?.Clone() as Data.Models.Metadata.Rom ?? [];
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -51,7 +50,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Sample(_internal.DeepClone() as Data.Models.Metadata.Sample ?? []);
|
||||
public override object Clone() => new Sample(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Sample GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Sample)?.Clone() as Data.Models.Metadata.Sample ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -129,7 +128,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Serials(_internal.DeepClone() as Data.Models.Metadata.Serials ?? []);
|
||||
public override object Clone() => new Serials(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Serials GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Serials)?.Clone() as Data.Models.Metadata.Serials ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -57,7 +56,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new SharedFeat(_internal.DeepClone() as Data.Models.Metadata.SharedFeat ?? []);
|
||||
public override object Clone() => new SharedFeat(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.SharedFeat GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.SharedFeat)?.Clone() as Data.Models.Metadata.SharedFeat ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -62,12 +61,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Slot(_internal.DeepClone() as Data.Models.Metadata.Slot ?? []);
|
||||
public override object Clone() => new Slot(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Slot GetInternalClone()
|
||||
{
|
||||
var slotItem = base.GetInternalClone();
|
||||
var slotItem = (_internal as Data.Models.Metadata.Slot)?.Clone() as Data.Models.Metadata.Slot ?? [];
|
||||
|
||||
if (SlotOption is not null)
|
||||
slotItem.SlotOption = Array.ConvertAll(SlotOption, slotOption => slotOption.GetInternalClone());
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -63,7 +62,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new SlotOption(_internal.DeepClone() as Data.Models.Metadata.SlotOption ?? []);
|
||||
public override object Clone() => new SlotOption(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.SlotOption GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.SlotOption)?.Clone() as Data.Models.Metadata.SlotOption ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -69,7 +68,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new SoftwareList(_internal.DeepClone() as Data.Models.Metadata.SoftwareList ?? []);
|
||||
public override object Clone() => new SoftwareList(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.SoftwareList GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.SoftwareList)?.Clone() as Data.Models.Metadata.SoftwareList ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -51,7 +50,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new Sound(_internal.DeepClone() as Data.Models.Metadata.Sound ?? []);
|
||||
public override object Clone() => new Sound(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.Sound GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.Sound)?.Clone() as Data.Models.Metadata.Sound ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
@@ -189,7 +188,11 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new SourceDetails(_internal.DeepClone() as Data.Models.Metadata.SourceDetails ?? []);
|
||||
public override object Clone() => new SourceDetails(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.SourceDetails GetInternalClone()
|
||||
=> (_internal as Data.Models.Metadata.SourceDetails)?.Clone() as Data.Models.Metadata.SourceDetails ?? [];
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user