mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-08 18:06:41 +00:00
Convert DipLocation fully over to properties
This commit is contained in:
@@ -159,6 +159,8 @@ namespace SabreTools.Data.Extensions
|
||||
return control.Clone() as Control;
|
||||
else if (self is DeviceRef deviceRef)
|
||||
return deviceRef.Clone() as DeviceRef;
|
||||
else if (self is DipLocation dipLocation)
|
||||
return dipLocation.Clone() as DipLocation;
|
||||
else if (self is Extension extension)
|
||||
return extension.Clone() as Extension;
|
||||
// TODO: Reenable when PartFeature no longer needs nesting
|
||||
@@ -213,10 +215,6 @@ namespace SabreTools.Data.Extensions
|
||||
cloneDevice.Mandatory = selfDevice.Mandatory;
|
||||
cloneDevice.Tag = selfDevice.Tag;
|
||||
}
|
||||
else if (self is DipLocation selfDipLocation && clone is DipLocation cloneDipLocation)
|
||||
{
|
||||
cloneDipLocation.Inverted = selfDipLocation.Inverted;
|
||||
}
|
||||
else if (self is DipSwitch selfDipSwitch && clone is DipSwitch cloneDipSwitch)
|
||||
{
|
||||
cloneDipSwitch.Default = selfDipSwitch.Default;
|
||||
|
||||
@@ -10,10 +10,9 @@ namespace SabreTools.Data.Models.Listxml
|
||||
[XmlAttribute("name")]
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <remarks>Numeric?</remarks>
|
||||
[Required]
|
||||
[XmlAttribute("number")]
|
||||
public string? Number { get; set; }
|
||||
public long? Number { get; set; }
|
||||
|
||||
/// <remarks>(yes|no) "no"</remarks>
|
||||
[XmlAttribute("inverted")]
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
using System;
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Data.Models.Metadata
|
||||
{
|
||||
[JsonObject("diplocation"), XmlRoot("diplocation")]
|
||||
public class DipLocation : DatItem
|
||||
public class DipLocation : DatItem, ICloneable, IEquatable<DipLocation>
|
||||
{
|
||||
#region Properties
|
||||
|
||||
@@ -13,15 +14,44 @@ namespace SabreTools.Data.Models.Metadata
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Keys
|
||||
|
||||
/// <remarks>string, possibly long</remarks>
|
||||
public const string NumberKey = "number";
|
||||
public long? Number { get; set; }
|
||||
|
||||
#endregion
|
||||
|
||||
public DipLocation() => ItemType = ItemType.DipLocation;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public object Clone()
|
||||
{
|
||||
var obj = new DipLocation();
|
||||
|
||||
obj.Inverted = Inverted;
|
||||
obj.Name = Name;
|
||||
obj.Number = Number;
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public bool Equals(DipLocation? other)
|
||||
{
|
||||
// Null never matches
|
||||
if (other is null)
|
||||
return false;
|
||||
|
||||
// Properties
|
||||
if (Inverted != other.Inverted)
|
||||
return false;
|
||||
|
||||
if ((Name is null) ^ (other.Name is null))
|
||||
return false;
|
||||
else if (Name is not null && !Name.Equals(other.Name, StringComparison.OrdinalIgnoreCase))
|
||||
return false;
|
||||
|
||||
if (Number != other.Number)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -505,7 +505,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
{
|
||||
Inverted = true,
|
||||
Name = "name",
|
||||
[Data.Models.Metadata.DipLocation.NumberKey] = "number",
|
||||
Number = 12345,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1286,7 +1286,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.NotNull(dipLocation);
|
||||
Assert.True(dipLocation.Inverted);
|
||||
Assert.Equal("name", dipLocation.Name);
|
||||
Assert.Equal("number", dipLocation.ReadString(Data.Models.Metadata.DipLocation.NumberKey));
|
||||
Assert.Equal(12345, dipLocation.Number);
|
||||
}
|
||||
|
||||
private static void ValidateDipSwitch(DipSwitch? dipSwitch)
|
||||
|
||||
@@ -798,7 +798,7 @@ namespace SabreTools.Metadata.DatFiles.Test
|
||||
Assert.NotNull(dipLocation);
|
||||
Assert.True(dipLocation.Inverted);
|
||||
Assert.Equal("name", dipLocation.Name);
|
||||
Assert.Equal("number", dipLocation.ReadString(Data.Models.Metadata.DipLocation.NumberKey));
|
||||
Assert.Equal(12345, dipLocation.Number);
|
||||
}
|
||||
|
||||
private static void ValidateMetadataDipSwitch(Data.Models.Metadata.DipSwitch? dipSwitch)
|
||||
|
||||
@@ -28,6 +28,12 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => (_internal as Data.Models.Metadata.DipLocation)?.Name = value;
|
||||
}
|
||||
|
||||
public long? Number
|
||||
{
|
||||
get => (_internal as Data.Models.Metadata.DipLocation)?.Number;
|
||||
set => (_internal as Data.Models.Metadata.DipLocation)?.Number = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
@@ -480,9 +480,8 @@ namespace SabreTools.Metadata.Filter
|
||||
case DipLocation item when fieldName == "inverted":
|
||||
checkValue = item.Inverted.FromYesNo();
|
||||
return true;
|
||||
|
||||
case DipLocation item when fieldName == "invertwed":
|
||||
checkValue = item.Inverted.FromYesNo();
|
||||
case DipLocation item when fieldName == "number":
|
||||
checkValue = item.Number?.ToString();
|
||||
return true;
|
||||
|
||||
case DipSwitch item when fieldName == "default":
|
||||
|
||||
@@ -138,7 +138,7 @@ namespace SabreTools.Metadata
|
||||
}
|
||||
else if (self is DipLocation selfDipLocation && other is DipLocation otherDipLocation)
|
||||
{
|
||||
if (selfDipLocation.Inverted != otherDipLocation.Inverted)
|
||||
if (!selfDipLocation.Equals(otherDipLocation))
|
||||
return false;
|
||||
}
|
||||
else if (self is DipSwitch selfDipSwitch && other is DipSwitch otherDipSwitch)
|
||||
|
||||
@@ -190,7 +190,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
var diplocation = new Data.Models.Listxml.DipLocation
|
||||
{
|
||||
Name = "name",
|
||||
Number = "XXXXXX",
|
||||
Number = 12345,
|
||||
Inverted = true,
|
||||
};
|
||||
|
||||
@@ -669,7 +669,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Assert.NotNull(diplocation);
|
||||
Assert.Equal("name", diplocation.Name);
|
||||
Assert.Equal("XXXXXX", diplocation.Number);
|
||||
Assert.Equal(12345, diplocation.Number);
|
||||
Assert.Equal(true, diplocation.Inverted);
|
||||
}
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
var diplocation = new Data.Models.Listxml.DipLocation
|
||||
{
|
||||
Name = "name",
|
||||
Number = "XXXXXX",
|
||||
Number = 12345,
|
||||
Inverted = true,
|
||||
};
|
||||
|
||||
@@ -663,7 +663,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Assert.NotNull(diplocation);
|
||||
Assert.Equal("name", diplocation.Name);
|
||||
Assert.Equal("XXXXXX", diplocation.Number);
|
||||
Assert.Equal(12345, diplocation.Number);
|
||||
Assert.Equal(true, diplocation.Inverted);
|
||||
}
|
||||
|
||||
|
||||
@@ -186,7 +186,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
var diplocation = new Data.Models.Listxml.DipLocation
|
||||
{
|
||||
Name = "name",
|
||||
Number = "XXXXXX",
|
||||
Number = 12345,
|
||||
Inverted = true,
|
||||
};
|
||||
|
||||
@@ -663,7 +663,7 @@ namespace SabreTools.Serialization.CrossModel.Test
|
||||
{
|
||||
Assert.NotNull(diplocation);
|
||||
Assert.Equal("name", diplocation.Name);
|
||||
Assert.Equal("XXXXXX", diplocation.Number);
|
||||
Assert.Equal(12345, diplocation.Number);
|
||||
Assert.Equal(true, diplocation.Inverted);
|
||||
}
|
||||
|
||||
|
||||
@@ -344,7 +344,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
var dipLocation = new DipLocation
|
||||
{
|
||||
Name = item.Name,
|
||||
Number = item.ReadString(Data.Models.Metadata.DipLocation.NumberKey),
|
||||
Number = item.Number,
|
||||
Inverted = item.Inverted,
|
||||
};
|
||||
return dipLocation;
|
||||
|
||||
@@ -380,7 +380,7 @@ namespace SabreTools.Serialization.CrossModel
|
||||
var dipLocation = new Data.Models.Metadata.DipLocation
|
||||
{
|
||||
Name = item.Name,
|
||||
[Data.Models.Metadata.DipLocation.NumberKey] = item.Number,
|
||||
Number = item.Number,
|
||||
Inverted = item.Inverted,
|
||||
};
|
||||
return dipLocation;
|
||||
|
||||
@@ -257,7 +257,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
var diplocation = new Data.Models.Listxml.DipLocation
|
||||
{
|
||||
Name = "name",
|
||||
Number = "XXXXXX",
|
||||
Number = 12345,
|
||||
Inverted = true,
|
||||
};
|
||||
|
||||
@@ -736,7 +736,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
{
|
||||
Assert.NotNull(diplocation);
|
||||
Assert.Equal("name", diplocation.Name);
|
||||
Assert.Equal("XXXXXX", diplocation.Number);
|
||||
Assert.Equal(12345, diplocation.Number);
|
||||
Assert.Equal(true, diplocation.Inverted);
|
||||
}
|
||||
|
||||
|
||||
@@ -253,7 +253,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
var diplocation = new Data.Models.Listxml.DipLocation
|
||||
{
|
||||
Name = "name",
|
||||
Number = "XXXXXX",
|
||||
Number = 12345,
|
||||
Inverted = true,
|
||||
};
|
||||
|
||||
@@ -730,7 +730,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
{
|
||||
Assert.NotNull(diplocation);
|
||||
Assert.Equal("name", diplocation.Name);
|
||||
Assert.Equal("XXXXXX", diplocation.Number);
|
||||
Assert.Equal(12345, diplocation.Number);
|
||||
Assert.Equal(true, diplocation.Inverted);
|
||||
}
|
||||
|
||||
|
||||
@@ -253,7 +253,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
var diplocation = new Data.Models.Listxml.DipLocation
|
||||
{
|
||||
Name = "name",
|
||||
Number = "XXXXXX",
|
||||
Number = 12345,
|
||||
Inverted = true,
|
||||
};
|
||||
|
||||
@@ -730,7 +730,7 @@ namespace SabreTools.Serialization.Readers.Test
|
||||
{
|
||||
Assert.NotNull(diplocation);
|
||||
Assert.Equal("name", diplocation.Name);
|
||||
Assert.Equal("XXXXXX", diplocation.Number);
|
||||
Assert.Equal(12345, diplocation.Number);
|
||||
Assert.Equal(true, diplocation.Inverted);
|
||||
}
|
||||
|
||||
|
||||
@@ -435,7 +435,7 @@ namespace SabreTools.Serialization.Readers
|
||||
var obj = new DipLocation();
|
||||
|
||||
obj.Name = reader.GetAttribute("name");
|
||||
obj.Number = reader.GetAttribute("number");
|
||||
obj.Number = NumberHelper.ConvertToInt64(reader.GetAttribute("number"));
|
||||
obj.Inverted = reader.GetAttribute("inverted").AsYesNo();
|
||||
|
||||
return obj;
|
||||
|
||||
@@ -433,7 +433,7 @@ namespace SabreTools.Serialization.Readers
|
||||
var obj = new DipLocation();
|
||||
|
||||
obj.Name = reader.GetAttribute("name");
|
||||
obj.Number = reader.GetAttribute("number");
|
||||
obj.Number = NumberHelper.ConvertToInt64(reader.GetAttribute("number"));
|
||||
obj.Inverted = reader.GetAttribute("inverted").AsYesNo();
|
||||
|
||||
return obj;
|
||||
|
||||
@@ -433,7 +433,7 @@ namespace SabreTools.Serialization.Readers
|
||||
var obj = new DipLocation();
|
||||
|
||||
obj.Name = reader.GetAttribute("name");
|
||||
obj.Number = reader.GetAttribute("number");
|
||||
obj.Number = NumberHelper.ConvertToInt64(reader.GetAttribute("number"));
|
||||
obj.Inverted = reader.GetAttribute("inverted").AsYesNo();
|
||||
|
||||
return obj;
|
||||
|
||||
@@ -298,7 +298,7 @@ namespace SabreTools.Serialization.Writers
|
||||
writer.WriteStartElement("diplocation");
|
||||
|
||||
writer.WriteRequiredAttributeString("name", obj.Name);
|
||||
writer.WriteRequiredAttributeString("number", obj.Number);
|
||||
writer.WriteRequiredAttributeString("number", obj.Number?.ToString());
|
||||
writer.WriteOptionalAttributeString("inverted", obj.Inverted.FromYesNo());
|
||||
|
||||
writer.WriteEndElement();
|
||||
|
||||
@@ -296,7 +296,7 @@ namespace SabreTools.Serialization.Writers
|
||||
writer.WriteStartElement("diplocation");
|
||||
|
||||
writer.WriteRequiredAttributeString("name", obj.Name);
|
||||
writer.WriteRequiredAttributeString("number", obj.Number);
|
||||
writer.WriteRequiredAttributeString("number", obj.Number?.ToString());
|
||||
writer.WriteOptionalAttributeString("inverted", obj.Inverted.FromYesNo());
|
||||
|
||||
writer.WriteEndElement();
|
||||
|
||||
@@ -296,7 +296,7 @@ namespace SabreTools.Serialization.Writers
|
||||
writer.WriteStartElement("diplocation");
|
||||
|
||||
writer.WriteRequiredAttributeString("name", obj.Name);
|
||||
writer.WriteRequiredAttributeString("number", obj.Number);
|
||||
writer.WriteRequiredAttributeString("number", obj.Number?.ToString());
|
||||
writer.WriteOptionalAttributeString("inverted", obj.Inverted.FromYesNo());
|
||||
|
||||
writer.WriteEndElement();
|
||||
|
||||
Reference in New Issue
Block a user