mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-08 18:06:41 +00:00
Make inverted DataArea less impactful
This commit is contained in:
@@ -20,7 +20,6 @@ namespace SabreTools.Metadata.DatItems
|
||||
[XmlInclude(typeof(ConfLocation))]
|
||||
[XmlInclude(typeof(ConfSetting))]
|
||||
[XmlInclude(typeof(Control))]
|
||||
[XmlInclude(typeof(DataArea))]
|
||||
[XmlInclude(typeof(Device))]
|
||||
[XmlInclude(typeof(DeviceRef))]
|
||||
[XmlInclude(typeof(DipLocation))]
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
/// <summary>
|
||||
/// SoftwareList dataarea information
|
||||
/// </summary>
|
||||
/// <remarks>One DataArea can contain multiple Rom items</remarks>
|
||||
[JsonObject("dataarea"), XmlRoot("dataarea")]
|
||||
public sealed class DataArea : DatItem<Data.Models.Metadata.DataArea>
|
||||
{
|
||||
#region Properties
|
||||
|
||||
public Data.Models.Metadata.Endianness? Endianness
|
||||
{
|
||||
get => _internal.Endianness;
|
||||
set => _internal.Endianness = value;
|
||||
}
|
||||
|
||||
/// <inheritdoc>/>
|
||||
public override Data.Models.Metadata.ItemType ItemType
|
||||
=> Data.Models.Metadata.ItemType.DataArea;
|
||||
|
||||
public string? Name
|
||||
{
|
||||
get => _internal.Name;
|
||||
set => _internal.Name = value;
|
||||
}
|
||||
|
||||
public long? Size
|
||||
{
|
||||
get => _internal.Size;
|
||||
set => _internal.Size = value;
|
||||
}
|
||||
|
||||
public Data.Models.Metadata.Width? Width
|
||||
{
|
||||
get => _internal.Width;
|
||||
set => _internal.Width = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public DataArea() : base() { }
|
||||
|
||||
public DataArea(Data.Models.Metadata.DataArea item)
|
||||
{
|
||||
_internal = item.Clone() as Data.Models.Metadata.DataArea ?? new();
|
||||
|
||||
// Clear all lists
|
||||
_internal.Rom = null;
|
||||
}
|
||||
|
||||
public DataArea(Data.Models.Metadata.DataArea item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override string? GetName() => Name;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void SetName(string? name) => Name = name;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new DataArea(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.DataArea GetInternalClone()
|
||||
=> _internal.Clone() as Data.Models.Metadata.DataArea ?? new();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Comparision Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool Equals(DatItem? other)
|
||||
{
|
||||
// If the other item is null
|
||||
if (other is null)
|
||||
return false;
|
||||
|
||||
// If the type matches
|
||||
if (other is DataArea otherDataArea)
|
||||
return _internal.Equals(otherDataArea._internal);
|
||||
|
||||
// Everything else fails
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -144,8 +144,8 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
// Create a DataArea if there was an existing DiskArea
|
||||
if (DiskAreaName is not null)
|
||||
{
|
||||
var dataArea = new DataArea { Name = DiskAreaName };
|
||||
rom.DataArea = dataArea;
|
||||
rom.DataAreaEndianness = Endianness.Little;
|
||||
rom.DataAreaName = DiskAreaName;
|
||||
}
|
||||
|
||||
rom.DupeType = DupeType;
|
||||
|
||||
@@ -1,87 +0,0 @@
|
||||
using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
{
|
||||
/// <summary>
|
||||
/// SoftwareList diskarea information
|
||||
/// </summary>
|
||||
/// <remarks>One DiskArea can contain multiple Disk items</remarks>
|
||||
[JsonObject("diskarea"), XmlRoot("diskarea")]
|
||||
public sealed class DiskArea : DatItem<Data.Models.Metadata.DiskArea>
|
||||
{
|
||||
#region Properties
|
||||
|
||||
/// <inheritdoc>/>
|
||||
public override Data.Models.Metadata.ItemType ItemType
|
||||
=> Data.Models.Metadata.ItemType.DiskArea;
|
||||
|
||||
public string? Name
|
||||
{
|
||||
get => _internal.Name;
|
||||
set => _internal.Name = value;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
public DiskArea() : base() { }
|
||||
|
||||
public DiskArea(Data.Models.Metadata.DiskArea item) : base(item)
|
||||
{
|
||||
_internal = item.Clone() as Data.Models.Metadata.DiskArea ?? new();
|
||||
|
||||
// Clear all lists
|
||||
_internal.Disk = null;
|
||||
}
|
||||
|
||||
public DiskArea(Data.Models.Metadata.DiskArea item, Machine machine, Source source) : this(item)
|
||||
{
|
||||
Source = source;
|
||||
CopyMachineInformation(machine);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Accessors
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override string? GetName() => Name;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override void SetName(string? name) => Name = name;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Cloning Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override object Clone() => new DiskArea(GetInternalClone());
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override Data.Models.Metadata.DiskArea GetInternalClone()
|
||||
=> _internal.Clone() as Data.Models.Metadata.DiskArea ?? new();
|
||||
|
||||
#endregion
|
||||
|
||||
#region Comparision Methods
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool Equals(DatItem? other)
|
||||
{
|
||||
// If the other item is null
|
||||
if (other is null)
|
||||
return false;
|
||||
|
||||
// If the type matches
|
||||
if (other is DiskArea otherDiskArea)
|
||||
return _internal.Equals(otherDiskArea._internal);
|
||||
|
||||
// Everything else fails
|
||||
return false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,6 @@ using System.Xml.Serialization;
|
||||
using Newtonsoft.Json;
|
||||
using SabreTools.Data.Extensions;
|
||||
using SabreTools.Data.Models.Metadata;
|
||||
using SabreTools.Metadata.Filter;
|
||||
using SabreTools.Text.Extensions;
|
||||
|
||||
namespace SabreTools.Metadata.DatItems.Formats
|
||||
@@ -117,20 +116,13 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
set => _internal.Creator = value;
|
||||
}
|
||||
|
||||
public DataArea? DataArea { get; set; }
|
||||
public Endianness? DataAreaEndianness { get; set; }
|
||||
|
||||
[JsonIgnore]
|
||||
public bool DataAreaSpecified
|
||||
{
|
||||
get
|
||||
{
|
||||
return DataArea is not null
|
||||
&& (!string.IsNullOrEmpty(DataArea.Name)
|
||||
|| DataArea.Size is not null
|
||||
|| DataArea.Width is not null
|
||||
|| DataArea.Endianness is not null);
|
||||
}
|
||||
}
|
||||
public string? DataAreaName { get; set; }
|
||||
|
||||
public long? DataAreaSize { get; set; }
|
||||
|
||||
public Width? DataAreaWidth { get; set; }
|
||||
|
||||
public string? Date
|
||||
{
|
||||
@@ -933,31 +925,6 @@ namespace SabreTools.Metadata.DatItems.Formats
|
||||
|
||||
#endregion
|
||||
|
||||
#region Manipulation
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool PassesFilter(FilterRunner filterRunner)
|
||||
{
|
||||
if (Machine is not null && !Machine.PassesFilter(filterRunner))
|
||||
return false;
|
||||
|
||||
// TODO: DataArea
|
||||
// TODO: Part
|
||||
|
||||
return filterRunner.Run(_internal);
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public override bool PassesFilterDB(FilterRunner filterRunner)
|
||||
{
|
||||
// TODO: DataArea
|
||||
// TODO: Part
|
||||
|
||||
return filterRunner.Run(_internal);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Sorting and Merging
|
||||
|
||||
/// <inheritdoc/>
|
||||
|
||||
Reference in New Issue
Block a user