diff --git a/SabreTools.Data.Models/Metadata/MetadataFile.cs b/SabreTools.Data.Models/Metadata/MetadataFile.cs
index 1bdbef9a..efbfbd1c 100644
--- a/SabreTools.Data.Models/Metadata/MetadataFile.cs
+++ b/SabreTools.Data.Models/Metadata/MetadataFile.cs
@@ -4,22 +4,14 @@ namespace SabreTools.Data.Models.Metadata
///
/// Format-agnostic representation of a full metadata file
///
+ /// TODO: ICloneable
+ /// TODO: IComparable
public class MetadataFile : DictionaryBase
{
- #region Keys
+ public Header? Header { get; set; }
- /// Machine[]
- [NoFilter]
- public const string MachineKey = "machine";
+ public InfoSource? InfoSource { get; set; }
- /// Header
- [NoFilter]
- public const string HeaderKey = "header";
-
- /// InfoSource
- [NoFilter]
- public const string InfoSourceKey = "infosource";
-
- #endregion
+ public Machine[]? Machine { get; set; }
}
}
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
index 92432131..cc83a9fd 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.FromMetadata.cs
@@ -41,8 +41,8 @@ namespace SabreTools.Metadata.DatFiles.Test
Data.Models.Metadata.Machine[]? machines = null;
Data.Models.Metadata.MetadataFile? item = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = header,
- [Data.Models.Metadata.MetadataFile.MachineKey] = machines,
+ Header = header,
+ Machine = machines,
};
DatFile datFile = new Formats.Logiqx(null, useGame: false);
@@ -59,8 +59,8 @@ namespace SabreTools.Metadata.DatFiles.Test
Data.Models.Metadata.Machine[]? machines = [machine];
Data.Models.Metadata.MetadataFile? item = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = header,
- [Data.Models.Metadata.MetadataFile.MachineKey] = machines,
+ Header = header,
+ Machine = machines,
};
DatFile datFile = new Formats.Logiqx(null, useGame: false);
diff --git a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
index 8843f57f..a3045f03 100644
--- a/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
+++ b/SabreTools.Metadata.DatFiles.Test/DatFileTests.ToMetadata.cs
@@ -32,7 +32,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Data.Models.Metadata.MetadataFile? actual = datFile.ConvertToMetadata();
Assert.NotNull(actual);
- Data.Models.Metadata.Header? actualHeader = actual.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ Data.Models.Metadata.Header? actualHeader = actual.Header;
ValidateMetadataHeader(actualHeader);
}
@@ -80,7 +80,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Data.Models.Metadata.MetadataFile? actual = datFile.ConvertToMetadata();
Assert.NotNull(actual);
- Data.Models.Metadata.Machine[]? machines = actual.ReadArray(Data.Models.Metadata.MetadataFile.MachineKey);
+ Data.Models.Metadata.Machine[]? machines = actual.Machine;
Assert.NotNull(machines);
Data.Models.Metadata.Machine actualMachine = Assert.Single(machines);
ValidateMetadataMachine(actualMachine);
diff --git a/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs b/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
index dba32835..2b27899d 100644
--- a/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
+++ b/SabreTools.Metadata.DatFiles/DatFile.FromMetadata.cs
@@ -35,7 +35,7 @@ namespace SabreTools.Metadata.DatFiles
FilterRunner? filterRunner)
{
// If the metadata file is invalid, we can't do anything
- if (item is null || item.Count == 0)
+ if (item is null)
return;
// Create an internal source and add to the dictionary
@@ -43,12 +43,12 @@ namespace SabreTools.Metadata.DatFiles
// long sourceIndex = AddSourceDB(source);
// Get the header from the metadata
- var header = item.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = item.Header;
if (header is not null)
ConvertHeader(header, keep);
// Get the machines from the metadata
- var machines = item.ReadArray(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = item.Machine;
if (machines is not null)
ConvertMachines(machines, source, sourceIndex: 0, statsOnly, filterRunner);
}
diff --git a/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs b/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
index 601bab62..620517c6 100644
--- a/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
+++ b/SabreTools.Metadata.DatFiles/DatFile.ToMetadata.cs
@@ -24,12 +24,12 @@ namespace SabreTools.Metadata.DatFiles
// Convert and assign the header
var header = Header.GetInternalClone();
if (header is not null)
- metadataFile[Data.Models.Metadata.MetadataFile.HeaderKey] = header;
+ metadataFile.Header = header;
// Convert and assign the machines
var machines = ConvertMachines(ignoreblanks);
if (machines is not null)
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey] = machines;
+ metadataFile.Machine = machines;
return metadataFile;
}
@@ -49,12 +49,12 @@ namespace SabreTools.Metadata.DatFiles
// Convert and assign the header
var header = Header.GetInternalClone();
if (header is not null)
- metadataFile[Data.Models.Metadata.MetadataFile.HeaderKey] = header;
+ metadataFile.Header = header;
// Convert and assign the machines
var machines = ConvertMachinesDB(ignoreblanks);
if (machines is not null)
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey] = machines;
+ metadataFile.Machine = machines;
return metadataFile;
}
diff --git a/SabreTools.Metadata.Filter/FilterKey.cs b/SabreTools.Metadata.Filter/FilterKey.cs
index 25555ac3..9a207be5 100644
--- a/SabreTools.Metadata.Filter/FilterKey.cs
+++ b/SabreTools.Metadata.Filter/FilterKey.cs
@@ -111,7 +111,7 @@ namespace SabreTools.Metadata.Filter
if (constantMatch is not null)
{
// Return the sanitized ID
- itemName = MetadataFile.HeaderKey;
+ itemName = "header";
fieldName = constantMatch;
return true;
}
@@ -127,7 +127,7 @@ namespace SabreTools.Metadata.Filter
if (propertyMatch is not null)
{
// Return the sanitized ID
- itemName = MetadataFile.HeaderKey;
+ itemName = "header";
fieldName = propertyMatch.ToLowerInvariant();
return true;
}
@@ -151,7 +151,7 @@ namespace SabreTools.Metadata.Filter
if (constantMatch is not null)
{
// Return the sanitized ID
- itemName = MetadataFile.MachineKey;
+ itemName = "machine";
fieldName = constantMatch;
return true;
}
@@ -167,7 +167,7 @@ namespace SabreTools.Metadata.Filter
if (propertyMatch is not null)
{
// Return the sanitized ID
- itemName = MetadataFile.MachineKey;
+ itemName = "machine";
fieldName = propertyMatch.ToLowerInvariant();
return true;
}
diff --git a/SabreTools.Metadata.Filter/FilterRunner.cs b/SabreTools.Metadata.Filter/FilterRunner.cs
index ddbe82ee..440731a8 100644
--- a/SabreTools.Metadata.Filter/FilterRunner.cs
+++ b/SabreTools.Metadata.Filter/FilterRunner.cs
@@ -36,8 +36,8 @@ namespace SabreTools.Metadata.Filter
{
string? itemName = dictionaryBase switch
{
- Header => MetadataFile.HeaderKey,
- Machine => MetadataFile.MachineKey,
+ Header => "header",
+ Machine => "machine",
DatItem => TypeHelper.GetXmlRootAttributeElementName(dictionaryBase.GetType()),
_ => null,
};
@@ -73,12 +73,12 @@ namespace SabreTools.Metadata.Filter
string key = filter.Key.ToString();
// Special case for machine types
- if (filter.Key.ItemName == MetadataFile.MachineKey && filter.Key.FieldName == "isbios")
- key = $"{MetadataFile.MachineKey}.COMBINEDTYPE";
- else if (filter.Key.ItemName == MetadataFile.MachineKey && filter.Key.FieldName == "isdevice")
- key = $"{MetadataFile.MachineKey}.COMBINEDTYPE";
- else if (filter.Key.ItemName == MetadataFile.MachineKey && filter.Key.FieldName == "ismechanical")
- key = $"{MetadataFile.MachineKey}.COMBINEDTYPE";
+ if (filter.Key.ItemName == "machine" && filter.Key.FieldName == "isbios")
+ key = $"{"machine"}.COMBINEDTYPE";
+ else if (filter.Key.ItemName == "machine" && filter.Key.FieldName == "isdevice")
+ key = $"{"machine"}.COMBINEDTYPE";
+ else if (filter.Key.ItemName == "machine" && filter.Key.FieldName == "ismechanical")
+ key = $"{"machine"}.COMBINEDTYPE";
// Set the expected group type
GroupType groupType = GroupType.OR;
diff --git a/SabreTools.Serialization.CrossModel/ArchiveDotOrg.Deserializer.cs b/SabreTools.Serialization.CrossModel/ArchiveDotOrg.Deserializer.cs
index fd4293da..8db234f7 100644
--- a/SabreTools.Serialization.CrossModel/ArchiveDotOrg.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/ArchiveDotOrg.Deserializer.cs
@@ -14,7 +14,7 @@ namespace SabreTools.Serialization.CrossModel
var files = new Files();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
var items = new List();
foreach (var machine in machines ?? [])
{
diff --git a/SabreTools.Serialization.CrossModel/ArchiveDotOrg.Serializer.cs b/SabreTools.Serialization.CrossModel/ArchiveDotOrg.Serializer.cs
index 5e0125bc..d8cca52d 100644
--- a/SabreTools.Serialization.CrossModel/ArchiveDotOrg.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/ArchiveDotOrg.Serializer.cs
@@ -14,14 +14,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
+ Header = ConvertHeaderToInternalModel(),
};
if (item?.File is not null && item.File.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(item.File, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(item.File, ConvertMachineToInternalModel);
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/AttractMode.Deserializer.cs b/SabreTools.Serialization.CrossModel/AttractMode.Deserializer.cs
index 83db08db..dfd38d2f 100644
--- a/SabreTools.Serialization.CrossModel/AttractMode.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/AttractMode.Deserializer.cs
@@ -12,10 +12,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var metadataFile = header is not null ? ConvertHeaderFromInternalModel(header) : new MetadataFile();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
var items = new List();
foreach (var machine in machines ?? [])
{
diff --git a/SabreTools.Serialization.CrossModel/AttractMode.Serializer.cs b/SabreTools.Serialization.CrossModel/AttractMode.Serializer.cs
index db50c734..0e42ad1d 100644
--- a/SabreTools.Serialization.CrossModel/AttractMode.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/AttractMode.Serializer.cs
@@ -13,14 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(obj),
+ Header = ConvertHeaderToInternalModel(obj),
};
if (obj?.Row is not null && obj.Row.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel);
return metadataFile;
}
@@ -40,11 +37,8 @@ namespace SabreTools.Serialization.CrossModel
///
/// Convert from to
///
- private static Data.Models.Metadata.Machine? ConvertMachineToInternalModel(Row? item)
+ private static Data.Models.Metadata.Machine ConvertMachineToInternalModel(Row item)
{
- if (item is null)
- return null;
-
var machine = new Data.Models.Metadata.Machine
{
Name = item.Name,
diff --git a/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs b/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
index f4f87052..0b4d0200 100644
--- a/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/ClrMamePro.Deserializer.cs
@@ -18,18 +18,15 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new MetadataFile();
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
if (header is not null)
metadataFile.ClrMamePro = ConvertHeaderFromInternalModel(header);
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
- {
- metadataFile.Game
- = Array.ConvertAll(machines, m => ConvertMachineFromInternalModel(m, game));
- }
+ metadataFile.Game = Array.ConvertAll(machines, m => ConvertMachineFromInternalModel(m, game));
- var info = obj.Read(Data.Models.Metadata.MetadataFile.InfoSourceKey);
+ var info = obj.InfoSource;
if (info is not null)
metadataFile.Info = ConvertInfoSourceFromInternalModel(info);
diff --git a/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs b/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
index ba6663f2..3aefbebf 100644
--- a/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/ClrMamePro.Serializer.cs
@@ -14,16 +14,13 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile();
if (obj?.ClrMamePro is not null)
- metadataFile[Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(obj.ClrMamePro);
+ metadataFile.Header = ConvertHeaderToInternalModel(obj.ClrMamePro);
if (obj?.Game is not null && obj.Game.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(obj.Game, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(obj.Game, ConvertMachineToInternalModel);
if (obj?.Info is not null)
- metadataFile[Data.Models.Metadata.MetadataFile.InfoSourceKey] = ConvertInfoSourceToInternalModel(obj.Info);
+ metadataFile.InfoSource = ConvertInfoSourceToInternalModel(obj.Info);
return metadataFile;
}
@@ -57,11 +54,8 @@ namespace SabreTools.Serialization.CrossModel
///
/// Convert from to
///
- private static Data.Models.Metadata.Machine? ConvertMachineToInternalModel(GameBase? item)
+ private static Data.Models.Metadata.Machine ConvertMachineToInternalModel(GameBase item)
{
- if (item is null)
- return null;
-
var machine = new Data.Models.Metadata.Machine
{
Name = item.Name,
diff --git a/SabreTools.Serialization.CrossModel/DosCenter.Deserializer.cs b/SabreTools.Serialization.CrossModel/DosCenter.Deserializer.cs
index aee163a9..e3ea96f1 100644
--- a/SabreTools.Serialization.CrossModel/DosCenter.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/DosCenter.Deserializer.cs
@@ -13,11 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new MetadataFile();
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
if (header is not null)
metadataFile.DosCenter = ConvertHeaderFromInternalModel(header);
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
metadataFile.Game = Array.ConvertAll(machines, ConvertMachineFromInternalModel);
diff --git a/SabreTools.Serialization.CrossModel/DosCenter.Serializer.cs b/SabreTools.Serialization.CrossModel/DosCenter.Serializer.cs
index 48aec589..de188ae3 100644
--- a/SabreTools.Serialization.CrossModel/DosCenter.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/DosCenter.Serializer.cs
@@ -14,13 +14,10 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile();
if (obj?.DosCenter is not null)
- metadataFile[Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(obj.DosCenter);
+ metadataFile.Header = ConvertHeaderToInternalModel(obj.DosCenter);
if (obj?.Game is not null && obj.Game.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(obj.Game, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(obj.Game, ConvertMachineToInternalModel);
return metadataFile;
}
@@ -54,10 +51,7 @@ namespace SabreTools.Serialization.CrossModel
};
if (item.File is not null && item.File.Length > 0)
- {
- machine.Rom
- = Array.ConvertAll(item.File, ConvertToInternalModel);
- }
+ machine.Rom = Array.ConvertAll(item.File, ConvertToInternalModel);
return machine;
}
diff --git a/SabreTools.Serialization.CrossModel/EverdriveSMDB.Deserializer.cs b/SabreTools.Serialization.CrossModel/EverdriveSMDB.Deserializer.cs
index 488275b9..cf3e9c11 100644
--- a/SabreTools.Serialization.CrossModel/EverdriveSMDB.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/EverdriveSMDB.Deserializer.cs
@@ -14,7 +14,7 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new MetadataFile();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
var items = new List();
foreach (var machine in machines ?? [])
{
diff --git a/SabreTools.Serialization.CrossModel/EverdriveSMDB.Serializer.cs b/SabreTools.Serialization.CrossModel/EverdriveSMDB.Serializer.cs
index 4dbc16a2..39e0029e 100644
--- a/SabreTools.Serialization.CrossModel/EverdriveSMDB.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/EverdriveSMDB.Serializer.cs
@@ -13,14 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
+ Header = ConvertHeaderToInternalModel(),
};
if (obj?.Row is not null && obj.Row.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel);
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/Hashfile.Deserializer.cs b/SabreTools.Serialization.CrossModel/Hashfile.Deserializer.cs
index e32eb948..73687d69 100644
--- a/SabreTools.Serialization.CrossModel/Hashfile.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Hashfile.Deserializer.cs
@@ -18,7 +18,7 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is null || machines.Length == 0)
return null;
diff --git a/SabreTools.Serialization.CrossModel/Hashfile.Serializer.cs b/SabreTools.Serialization.CrossModel/Hashfile.Serializer.cs
index 77124dda..5eba2478 100644
--- a/SabreTools.Serialization.CrossModel/Hashfile.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Hashfile.Serializer.cs
@@ -13,11 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
+ Header = ConvertHeaderToInternalModel(),
};
var machine = ConvertMachineToInternalModel(obj);
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey] = new Data.Models.Metadata.Machine[] { machine };
+ metadataFile.Machine = new Data.Models.Metadata.Machine[] { machine };
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/Listrom.Deserializer.cs b/SabreTools.Serialization.CrossModel/Listrom.Deserializer.cs
index f947f3c5..fe623002 100644
--- a/SabreTools.Serialization.CrossModel/Listrom.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listrom.Deserializer.cs
@@ -14,7 +14,7 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new MetadataFile();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
metadataFile.Set = Array.ConvertAll(machines, ConvertMachineFromInternalModel);
diff --git a/SabreTools.Serialization.CrossModel/Listrom.Serializer.cs b/SabreTools.Serialization.CrossModel/Listrom.Serializer.cs
index 7c868a3a..11425615 100644
--- a/SabreTools.Serialization.CrossModel/Listrom.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listrom.Serializer.cs
@@ -14,14 +14,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(),
+ Header = ConvertHeaderToInternalModel(),
};
if (obj?.Set is not null && obj.Set.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(obj.Set, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(obj.Set, ConvertMachineToInternalModel);
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
index 2f670c2d..55e169d9 100644
--- a/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listxml.Deserializer.cs
@@ -11,10 +11,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var mame = header is not null ? ConvertMameFromInternalModel(header) : new Mame();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
mame.Game = Array.ConvertAll(machines, ConvertMachineFromInternalModel);
diff --git a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
index 1989ec2c..a61e74f3 100644
--- a/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Listxml.Serializer.cs
@@ -13,14 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
+ Header = ConvertHeaderToInternalModel(item),
};
if (item?.Game is not null && item.Game.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(item.Game, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(item.Game, ConvertMachineToInternalModel);
return metadataFile;
}
@@ -62,52 +59,28 @@ namespace SabreTools.Serialization.CrossModel
};
if (item.BiosSet is not null && item.BiosSet.Length > 0)
- {
- machine.BiosSet
- = Array.ConvertAll(item.BiosSet, ConvertToInternalModel);
- }
+ machine.BiosSet = Array.ConvertAll(item.BiosSet, ConvertToInternalModel);
if (item.Rom is not null && item.Rom.Length > 0)
- {
- machine.Rom
- = Array.ConvertAll(item.Rom, ConvertToInternalModel);
- }
+ machine.Rom = Array.ConvertAll(item.Rom, ConvertToInternalModel);
if (item.Disk is not null && item.Disk.Length > 0)
- {
- machine.Disk
- = Array.ConvertAll(item.Disk, ConvertToInternalModel);
- }
+ machine.Disk = Array.ConvertAll(item.Disk, ConvertToInternalModel);
if (item.DeviceRef is not null && item.DeviceRef.Length > 0)
- {
- machine.DeviceRef
- = Array.ConvertAll(item.DeviceRef, ConvertToInternalModel);
- }
+ machine.DeviceRef = Array.ConvertAll(item.DeviceRef, ConvertToInternalModel);
if (item.Sample is not null && item.Sample.Length > 0)
- {
- machine.Sample
- = Array.ConvertAll(item.Sample, ConvertToInternalModel);
- }
+ machine.Sample = Array.ConvertAll(item.Sample, ConvertToInternalModel);
if (item.Chip is not null && item.Chip.Length > 0)
- {
- machine.Chip
- = Array.ConvertAll(item.Chip, ConvertToInternalModel);
- }
+ machine.Chip = Array.ConvertAll(item.Chip, ConvertToInternalModel);
if (item.Display is not null && item.Display.Length > 0)
- {
- machine.Display
- = Array.ConvertAll(item.Display, ConvertToInternalModel);
- }
+ machine.Display = Array.ConvertAll(item.Display, ConvertToInternalModel);
if (item.Video is not null && item.Video.Length > 0)
- {
- machine.Video
- = Array.ConvertAll(item.Video, ConvertToInternalModel);
- }
+ machine.Video = Array.ConvertAll(item.Video, ConvertToInternalModel);
if (item.Sound is not null)
machine.Sound = ConvertToInternalModel(item.Sound);
@@ -116,61 +89,34 @@ namespace SabreTools.Serialization.CrossModel
machine.Input = ConvertToInternalModel(item.Input);
if (item.DipSwitch is not null && item.DipSwitch.Length > 0)
- {
- machine.DipSwitch
- = Array.ConvertAll(item.DipSwitch, ConvertToInternalModel);
- }
+ machine.DipSwitch = Array.ConvertAll(item.DipSwitch, ConvertToInternalModel);
if (item.Configuration is not null && item.Configuration.Length > 0)
- {
- machine.Configuration
- = Array.ConvertAll(item.Configuration, ConvertToInternalModel);
- }
+ machine.Configuration = Array.ConvertAll(item.Configuration, ConvertToInternalModel);
if (item.Port is not null && item.Port.Length > 0)
- {
- machine.Port
- = Array.ConvertAll(item.Port, ConvertToInternalModel);
- }
+ machine.Port = Array.ConvertAll(item.Port, ConvertToInternalModel);
if (item.Adjuster is not null && item.Adjuster.Length > 0)
- {
- machine.Adjuster
- = Array.ConvertAll(item.Adjuster, ConvertToInternalModel);
- }
+ machine.Adjuster = Array.ConvertAll(item.Adjuster, ConvertToInternalModel);
if (item.Driver is not null)
machine.Driver = ConvertToInternalModel(item.Driver);
if (item.Feature is not null && item.Feature.Length > 0)
- {
- machine.Feature
- = Array.ConvertAll(item.Feature, ConvertToInternalModel);
- }
+ machine.Feature = Array.ConvertAll(item.Feature, ConvertToInternalModel);
if (item.Device is not null && item.Device.Length > 0)
- {
- machine.Device
- = Array.ConvertAll(item.Device, ConvertToInternalModel);
- }
+ machine.Device = Array.ConvertAll(item.Device, ConvertToInternalModel);
if (item.Slot is not null && item.Slot.Length > 0)
- {
- machine.Slot
- = Array.ConvertAll(item.Slot, ConvertToInternalModel);
- }
+ machine.Slot = Array.ConvertAll(item.Slot, ConvertToInternalModel);
if (item.SoftwareList is not null && item.SoftwareList.Length > 0)
- {
- machine.SoftwareList
- = Array.ConvertAll(item.SoftwareList, ConvertToInternalModel);
- }
+ machine.SoftwareList = Array.ConvertAll(item.SoftwareList, ConvertToInternalModel);
if (item.RamOption is not null && item.RamOption.Length > 0)
- {
- machine.RamOption
- = Array.ConvertAll(item.RamOption, ConvertToInternalModel);
- }
+ machine.RamOption = Array.ConvertAll(item.RamOption, ConvertToInternalModel);
return machine;
}
diff --git a/SabreTools.Serialization.CrossModel/Logiqx.Deserializer.cs b/SabreTools.Serialization.CrossModel/Logiqx.Deserializer.cs
index ca81602e..712597a6 100644
--- a/SabreTools.Serialization.CrossModel/Logiqx.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Logiqx.Deserializer.cs
@@ -18,7 +18,7 @@ namespace SabreTools.Serialization.CrossModel
var datafile = new Datafile();
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
if (header is not null)
{
datafile.Build = header.Build;
@@ -27,7 +27,7 @@ namespace SabreTools.Serialization.CrossModel
datafile.Header = ConvertHeaderFromInternalModel(header);
}
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
datafile.Game = Array.ConvertAll(machines, m => ConvertMachineFromInternalModel(m, game));
diff --git a/SabreTools.Serialization.CrossModel/Logiqx.Serializer.cs b/SabreTools.Serialization.CrossModel/Logiqx.Serializer.cs
index b49e6291..df8c911f 100644
--- a/SabreTools.Serialization.CrossModel/Logiqx.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Logiqx.Serializer.cs
@@ -13,7 +13,7 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
+ Header = ConvertHeaderToInternalModel(item),
};
var machines = new List();
@@ -27,7 +27,7 @@ namespace SabreTools.Serialization.CrossModel
}
if (machines.Count > 0)
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey] = machines.ToArray();
+ metadataFile.Machine = [.. machines];
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/M1.Deserializer.cs b/SabreTools.Serialization.CrossModel/M1.Deserializer.cs
index 224eecdd..13fe1576 100644
--- a/SabreTools.Serialization.CrossModel/M1.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/M1.Deserializer.cs
@@ -10,10 +10,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var m1 = header is not null ? ConvertM1FromInternalModel(header) : new Data.Models.Listxml.M1();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
m1.Game = Array.ConvertAll(machines, Listxml.ConvertMachineFromInternalModel);
diff --git a/SabreTools.Serialization.CrossModel/M1.Serializer.cs b/SabreTools.Serialization.CrossModel/M1.Serializer.cs
index 4f5cc631..26c28362 100644
--- a/SabreTools.Serialization.CrossModel/M1.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/M1.Serializer.cs
@@ -12,14 +12,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
+ Header = ConvertHeaderToInternalModel(item),
};
if (item?.Game is not null && item.Game.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(item.Game, Listxml.ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(item.Game, Listxml.ConvertMachineToInternalModel);
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/Mess.Deserializer.cs b/SabreTools.Serialization.CrossModel/Mess.Deserializer.cs
index b9868ff1..7ee53aa4 100644
--- a/SabreTools.Serialization.CrossModel/Mess.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/Mess.Deserializer.cs
@@ -10,10 +10,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var m1 = header is not null ? ConvertMessFromInternalModel(header) : new Data.Models.Listxml.Mess();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
m1.Game = Array.ConvertAll(machines, Listxml.ConvertMachineFromInternalModel);
diff --git a/SabreTools.Serialization.CrossModel/Mess.Serializer.cs b/SabreTools.Serialization.CrossModel/Mess.Serializer.cs
index 05472a90..a148c625 100644
--- a/SabreTools.Serialization.CrossModel/Mess.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/Mess.Serializer.cs
@@ -12,14 +12,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
+ Header = ConvertHeaderToInternalModel(item),
};
if (item?.Game is not null && item.Game.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(item.Game, Listxml.ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(item.Game, Listxml.ConvertMachineToInternalModel);
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs b/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
index 848cb263..35e03656 100644
--- a/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/OfflineList.Deserializer.cs
@@ -11,10 +11,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var dat = header is not null ? ConvertHeaderFromInternalModel(header) : new Dat();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
{
dat.Games = new Games
diff --git a/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs b/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
index 98984444..3da54c2d 100644
--- a/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/OfflineList.Serializer.cs
@@ -13,14 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
+ Header = ConvertHeaderToInternalModel(item),
};
if (item?.Games?.Game is not null && item.Games.Game.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(item.Games.Game, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(item.Games.Game, ConvertMachineToInternalModel);
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/OpenMSX.Deserializer.cs b/SabreTools.Serialization.CrossModel/OpenMSX.Deserializer.cs
index 60832b07..0a021bb6 100644
--- a/SabreTools.Serialization.CrossModel/OpenMSX.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/OpenMSX.Deserializer.cs
@@ -11,10 +11,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var softwareDb = header is not null ? ConvertHeaderFromInternalModel(header) : new SoftwareDb();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
softwareDb.Software = Array.ConvertAll(machines, ConvertMachineFromInternalModel);
diff --git a/SabreTools.Serialization.CrossModel/OpenMSX.Serializer.cs b/SabreTools.Serialization.CrossModel/OpenMSX.Serializer.cs
index 9565e6d6..e3bb4a66 100644
--- a/SabreTools.Serialization.CrossModel/OpenMSX.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/OpenMSX.Serializer.cs
@@ -13,14 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
+ Header = ConvertHeaderToInternalModel(item),
};
if (item?.Software is not null && item.Software.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(item.Software, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(item.Software, ConvertMachineToInternalModel);
return metadataFile;
}
@@ -53,10 +50,7 @@ namespace SabreTools.Serialization.CrossModel
};
if (item.Dump is not null && item.Dump.Length > 0)
- {
- machine.Dump
- = Array.ConvertAll(item.Dump, ConvertToInternalModel);
- }
+ machine.Dump = Array.ConvertAll(item.Dump, ConvertToInternalModel);
return machine;
}
diff --git a/SabreTools.Serialization.CrossModel/RomCenter.Deserializer.cs b/SabreTools.Serialization.CrossModel/RomCenter.Deserializer.cs
index 48ec773c..732c960e 100644
--- a/SabreTools.Serialization.CrossModel/RomCenter.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/RomCenter.Deserializer.cs
@@ -12,10 +12,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var metadataFile = header is not null ? ConvertHeaderFromInternalModel(header) : new MetadataFile();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
var items = new List();
foreach (var machine in machines ?? [])
{
diff --git a/SabreTools.Serialization.CrossModel/RomCenter.Serializer.cs b/SabreTools.Serialization.CrossModel/RomCenter.Serializer.cs
index 19c438ee..27c60028 100644
--- a/SabreTools.Serialization.CrossModel/RomCenter.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/RomCenter.Serializer.cs
@@ -13,14 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(obj),
+ Header = ConvertHeaderToInternalModel(obj),
};
if (obj?.Games?.Rom is not null && obj.Games.Rom.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(obj.Games.Rom, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(obj.Games.Rom, ConvertMachineToInternalModel);
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/SeparatedValue.Deserializer.cs b/SabreTools.Serialization.CrossModel/SeparatedValue.Deserializer.cs
index 5a261aa7..c5861300 100644
--- a/SabreTools.Serialization.CrossModel/SeparatedValue.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/SeparatedValue.Deserializer.cs
@@ -12,10 +12,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var metadataFile = header is not null ? ConvertHeaderFromInternalModel(header) : new MetadataFile();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
var items = new List();
foreach (var machine in machines ?? [])
{
diff --git a/SabreTools.Serialization.CrossModel/SeparatedValue.Serializer.cs b/SabreTools.Serialization.CrossModel/SeparatedValue.Serializer.cs
index 23e53f73..947eb8b9 100644
--- a/SabreTools.Serialization.CrossModel/SeparatedValue.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/SeparatedValue.Serializer.cs
@@ -13,14 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(obj),
+ Header = ConvertHeaderToInternalModel(obj),
};
if (obj?.Row is not null && obj.Row.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel);
return metadataFile;
}
diff --git a/SabreTools.Serialization.CrossModel/SoftwareList.Deserializer.cs b/SabreTools.Serialization.CrossModel/SoftwareList.Deserializer.cs
index 0f1b8b4b..5da779d7 100644
--- a/SabreTools.Serialization.CrossModel/SoftwareList.Deserializer.cs
+++ b/SabreTools.Serialization.CrossModel/SoftwareList.Deserializer.cs
@@ -11,10 +11,10 @@ namespace SabreTools.Serialization.CrossModel
if (obj is null)
return null;
- var header = obj.Read(Data.Models.Metadata.MetadataFile.HeaderKey);
+ var header = obj.Header;
var metadataFile = header is not null ? ConvertHeaderFromInternalModel(header) : new Data.Models.SoftwareList.SoftwareList();
- var machines = obj.Read(Data.Models.Metadata.MetadataFile.MachineKey);
+ var machines = obj.Machine;
if (machines is not null && machines.Length > 0)
metadataFile.Software = Array.ConvertAll(machines, ConvertMachineFromInternalModel);
diff --git a/SabreTools.Serialization.CrossModel/SoftwareList.Serializer.cs b/SabreTools.Serialization.CrossModel/SoftwareList.Serializer.cs
index 3c64bd17..c5625a60 100644
--- a/SabreTools.Serialization.CrossModel/SoftwareList.Serializer.cs
+++ b/SabreTools.Serialization.CrossModel/SoftwareList.Serializer.cs
@@ -13,14 +13,11 @@ namespace SabreTools.Serialization.CrossModel
var metadataFile = new Data.Models.Metadata.MetadataFile
{
- [Data.Models.Metadata.MetadataFile.HeaderKey] = ConvertHeaderToInternalModel(item),
+ Header = ConvertHeaderToInternalModel(item),
};
if (item?.Software is not null && item.Software.Length > 0)
- {
- metadataFile[Data.Models.Metadata.MetadataFile.MachineKey]
- = Array.ConvertAll(item.Software, ConvertMachineToInternalModel);
- }
+ metadataFile.Machine = Array.ConvertAll(item.Software, ConvertMachineToInternalModel);
return metadataFile;
}