diff --git a/SabreTools.Data.Models/Metadata/Analog.cs b/SabreTools.Data.Models/Metadata/Analog.cs
index 4b274e21..f8b06d45 100644
--- a/SabreTools.Data.Models/Metadata/Analog.cs
+++ b/SabreTools.Data.Models/Metadata/Analog.cs
@@ -1,10 +1,11 @@
-using System.Xml.Serialization;
+using System;
+using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("analog"), XmlRoot("analog")]
- public class Analog : DatItem
+ public class Analog : DatItem, ICloneable
{
#region Properties
@@ -13,5 +14,15 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Analog() => ItemType = ItemType.Analog;
+
+ ///
+ public object Clone()
+ {
+ var obj = new Analog();
+
+ obj.Mask = Mask;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/BiosSet.cs b/SabreTools.Data.Models/Metadata/BiosSet.cs
index ecd1104f..b3885fba 100644
--- a/SabreTools.Data.Models/Metadata/BiosSet.cs
+++ b/SabreTools.Data.Models/Metadata/BiosSet.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("biosset"), XmlRoot("biosset")]
- public class BiosSet : DatItem
+ public class BiosSet : DatItem, ICloneable
{
#region Properties
@@ -18,5 +19,17 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public BiosSet() => ItemType = ItemType.BiosSet;
+
+ ///
+ public object Clone()
+ {
+ var obj = new BiosSet();
+
+ obj.Default = Default;
+ obj.Description = Description;
+ obj.Name = Name;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/Blank.cs b/SabreTools.Data.Models/Metadata/Blank.cs
index 45b1284d..679bc352 100644
--- a/SabreTools.Data.Models/Metadata/Blank.cs
+++ b/SabreTools.Data.Models/Metadata/Blank.cs
@@ -1,11 +1,15 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("blank"), XmlRoot("blank")]
- public class Blank : DatItem
+ public class Blank : DatItem, ICloneable
{
public Blank() => ItemType = ItemType.Blank;
+
+ ///
+ public object Clone() => new Blank();
}
}
diff --git a/SabreTools.Data.Models/Metadata/Condition.cs b/SabreTools.Data.Models/Metadata/Condition.cs
index 22cede77..7c06f776 100644
--- a/SabreTools.Data.Models/Metadata/Condition.cs
+++ b/SabreTools.Data.Models/Metadata/Condition.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("condition"), XmlRoot("condition")]
- public class Condition : DatItem
+ public class Condition : DatItem, ICloneable
{
#region Properties
@@ -20,5 +21,18 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Condition() => ItemType = ItemType.Condition;
+
+ ///
+ public object Clone()
+ {
+ var obj = new Condition();
+
+ obj.Mask = Mask;
+ obj.Relation = Relation;
+ obj.Tag = Tag;
+ obj.Value = Value;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/DeviceRef.cs b/SabreTools.Data.Models/Metadata/DeviceRef.cs
index edfdf54d..a6989c93 100644
--- a/SabreTools.Data.Models/Metadata/DeviceRef.cs
+++ b/SabreTools.Data.Models/Metadata/DeviceRef.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("device_ref"), XmlRoot("device_ref")]
- public class DeviceRef : DatItem
+ public class DeviceRef : DatItem, ICloneable
{
#region Properties
@@ -13,5 +14,15 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public DeviceRef() => ItemType = ItemType.DeviceRef;
+
+ ///
+ public object Clone()
+ {
+ var obj = new DeviceRef();
+
+ obj.Name = Name;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/Extension.cs b/SabreTools.Data.Models/Metadata/Extension.cs
index ff5f9808..e61009c7 100644
--- a/SabreTools.Data.Models/Metadata/Extension.cs
+++ b/SabreTools.Data.Models/Metadata/Extension.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("extension"), XmlRoot("extension")]
- public class Extension : DatItem
+ public class Extension : DatItem, ICloneable
{
#region Properties
@@ -13,5 +14,15 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Extension() => ItemType = ItemType.Extension;
+
+ ///
+ public object Clone()
+ {
+ var obj = new Extension();
+
+ obj.Name = Name;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/Feature.cs b/SabreTools.Data.Models/Metadata/Feature.cs
index ee62f094..1162791a 100644
--- a/SabreTools.Data.Models/Metadata/Feature.cs
+++ b/SabreTools.Data.Models/Metadata/Feature.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("feature"), XmlRoot("feature")]
- public class Feature : DatItem
+ public class Feature : DatItem, ICloneable
{
#region Properties
@@ -24,5 +25,19 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Feature() => ItemType = ItemType.Feature;
+
+ ///
+ public object Clone()
+ {
+ var obj = new Feature();
+
+ obj.FeatureType = FeatureType;
+ obj.Name = Name;
+ obj.Overall = Overall;
+ obj.Status = Status;
+ obj.Value = Value;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/Info.cs b/SabreTools.Data.Models/Metadata/Info.cs
index 70032b49..4e073bfe 100644
--- a/SabreTools.Data.Models/Metadata/Info.cs
+++ b/SabreTools.Data.Models/Metadata/Info.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("info"), XmlRoot("info")]
- public class Info : DatItem
+ public class Info : DatItem, ICloneable
{
#region Properties
@@ -15,5 +16,16 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Info() => ItemType = ItemType.Info;
+
+ ///
+ public object Clone()
+ {
+ var obj = new Info();
+
+ obj.Name = Name;
+ obj.Value = Value;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/Instance.cs b/SabreTools.Data.Models/Metadata/Instance.cs
index c5fb42f4..4ca57882 100644
--- a/SabreTools.Data.Models/Metadata/Instance.cs
+++ b/SabreTools.Data.Models/Metadata/Instance.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("instance"), XmlRoot("instance")]
- public class Instance : DatItem
+ public class Instance : DatItem, ICloneable
{
#region Properties
@@ -15,5 +16,16 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Instance() => ItemType = ItemType.Instance;
+
+ ///
+ public object Clone()
+ {
+ var obj = new Instance();
+
+ obj.BriefName = BriefName;
+ obj.Name = Name;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/RamOption.cs b/SabreTools.Data.Models/Metadata/RamOption.cs
index 345ff641..5ff841a7 100644
--- a/SabreTools.Data.Models/Metadata/RamOption.cs
+++ b/SabreTools.Data.Models/Metadata/RamOption.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("ramoption"), XmlRoot("ramoption")]
- public class RamOption : DatItem
+ public class RamOption : DatItem, ICloneable
{
#region Properties
@@ -18,5 +19,17 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public RamOption() => ItemType = ItemType.RamOption;
+
+ ///
+ public object Clone()
+ {
+ var obj = new RamOption();
+
+ obj.Content = Content;
+ obj.Default = Default;
+ obj.Name = Name;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/Sample.cs b/SabreTools.Data.Models/Metadata/Sample.cs
index 3570b3aa..604a3def 100644
--- a/SabreTools.Data.Models/Metadata/Sample.cs
+++ b/SabreTools.Data.Models/Metadata/Sample.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("sample"), XmlRoot("sample")]
- public class Sample : DatItem
+ public class Sample : DatItem, ICloneable
{
#region Properties
@@ -13,5 +14,15 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public Sample() => ItemType = ItemType.Sample;
+
+ ///
+ public object Clone()
+ {
+ var obj = new Sample();
+
+ obj.Name = Name;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/SharedFeat.cs b/SabreTools.Data.Models/Metadata/SharedFeat.cs
index b42c1967..4eac6bf1 100644
--- a/SabreTools.Data.Models/Metadata/SharedFeat.cs
+++ b/SabreTools.Data.Models/Metadata/SharedFeat.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("sharedfeat"), XmlRoot("sharedfeat")]
- public class SharedFeat : DatItem
+ public class SharedFeat : DatItem, ICloneable
{
#region Properties
@@ -15,5 +16,16 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public SharedFeat() => ItemType = ItemType.SharedFeat;
+
+ ///
+ public object Clone()
+ {
+ var obj = new SharedFeat();
+
+ obj.Name = Name;
+ obj.Value = Value;
+
+ return obj;
+ }
}
}
diff --git a/SabreTools.Data.Models/Metadata/SlotOption.cs b/SabreTools.Data.Models/Metadata/SlotOption.cs
index 18059ea3..a1ac2c13 100644
--- a/SabreTools.Data.Models/Metadata/SlotOption.cs
+++ b/SabreTools.Data.Models/Metadata/SlotOption.cs
@@ -1,10 +1,11 @@
+using System;
using System.Xml.Serialization;
using Newtonsoft.Json;
namespace SabreTools.Data.Models.Metadata
{
[JsonObject("slotoption"), XmlRoot("slotoption")]
- public class SlotOption : DatItem
+ public class SlotOption : DatItem, ICloneable
{
#region Properties
@@ -18,5 +19,17 @@ namespace SabreTools.Data.Models.Metadata
#endregion
public SlotOption() => ItemType = ItemType.SlotOption;
+
+ ///
+ public object Clone()
+ {
+ var obj = new SlotOption();
+
+ obj.Default = Default;
+ obj.DevName = DevName;
+ obj.Name = Name;
+
+ return obj;
+ }
}
}