From f666d737cb2f696963e7eb2ee6e300e58b3ab2df Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 3 Apr 2024 14:28:47 -0400 Subject: [PATCH] Add static deserializers for IFileSerializer --- .../Files/AACS.Deserializer.cs | 9 ++++++- .../Files/ArchiveDotOrg.Deserializer.cs | 7 +++++- .../Files/AttractMode.Deserializer.cs | 12 +++++++--- .../Files/BDPlus.Deserializer.cs | 9 ++++++- .../Files/BFPK.Deserializer.cs | 9 ++++++- .../Files/BSP.Deserializer.cs | 9 ++++++- .../Files/CFB.Deserializer.cs | 9 ++++++- .../Files/CIA.Deserializer.cs | 9 ++++++- .../Files/Catalog.Deserializer.cs | 11 +++++++-- .../Files/ClrMamePro.Deserializer.cs | 24 +++++++++++++++---- .../Files/CueSheet.Deserializer.cs | 9 ++++++- .../Files/DosCenter.Deserializer.cs | 12 +++++++--- .../Files/EverdriveSMDB.Deserializer.cs | 12 +++++++--- .../Files/GCF.Deserializer.cs | 9 ++++++- .../Files/Hashfile.Deserializer.cs | 21 +++++++++++++--- .../Files/IRD.Deserializer.cs | 9 ++++++- .../InstallShieldCabinet.Deserializer.cs | 9 ++++++- .../Files/JsonFile.Deserializer.cs | 6 ++--- .../Files/LinearExecutable.Deserializer.cs | 9 ++++++- .../Files/Listrom.Deserializer.cs | 12 +++++++--- .../Files/Listxml.Deserializer.cs | 7 +++++- .../Files/Logiqx.Deserializer.cs | 7 +++++- .../Files/M1.Deserializer.cs | 7 +++++- .../Files/MSDOS.Deserializer.cs | 9 ++++++- .../Files/MicrosoftCabinet.Deserializer.cs | 9 ++++++- .../Files/MoPaQ.Deserializer.cs | 9 ++++++- .../Files/N3DS.Deserializer.cs | 9 ++++++- .../Files/NCF.Deserializer.cs | 9 ++++++- .../Files/NewExecutable.Deserializer.cs | 9 ++++++- .../Files/Nitro.Deserializer.cs | 9 ++++++- .../Files/OfflineList.Deserializer.cs | 7 +++++- .../Files/OpenMSX.Deserializer.cs | 7 +++++- .../Files/PAK.Deserializer.cs | 9 ++++++- .../Files/PFF.Deserializer.cs | 9 ++++++- .../Files/PIC.Deserializer.cs | 9 ++++++- .../Files/PlayJAudio.Deserializer.cs | 9 ++++++- .../Files/PlayJPlaylist.Deserializer.cs | 9 ++++++- .../Files/PortableExecutable.Deserializer.cs | 9 ++++++- .../Files/Quantum.Deserializer.cs | 9 ++++++- .../Files/RomCenter.Deserializer.cs | 12 +++++++--- .../Files/SGA.Deserializer.cs | 9 ++++++- .../Files/SeparatedValue.Deserializer.cs | 24 +++++++++++++++---- .../Files/SoftwareList.Deserializer.cs | 7 +++++- .../Files/VBSP.Deserializer.cs | 9 ++++++- .../Files/VPK.Deserializer.cs | 9 ++++++- .../Files/WAD.Deserializer.cs | 9 ++++++- .../Files/XZP.Deserializer.cs | 9 ++++++- .../Files/XmlFile.Deserializer.cs | 2 +- .../Interfaces/IFileSerializer.cs | 2 +- 49 files changed, 397 insertions(+), 72 deletions(-) diff --git a/SabreTools.Serialization/Files/AACS.Deserializer.cs b/SabreTools.Serialization/Files/AACS.Deserializer.cs index f8f5a4ea..77c74b4e 100644 --- a/SabreTools.Serialization/Files/AACS.Deserializer.cs +++ b/SabreTools.Serialization/Files/AACS.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class AACS : IFileSerializer { + /// + public static Models.AACS.MediaKeyBlock? Deserialize(string? path) + { + var obj = new AACS(); + return obj.DeserializeImpl(path); + } + /// - public Models.AACS.MediaKeyBlock? Deserialize(string? path) + public Models.AACS.MediaKeyBlock? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.AACS().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/ArchiveDotOrg.Deserializer.cs b/SabreTools.Serialization/Files/ArchiveDotOrg.Deserializer.cs index dffa5637..34713dbb 100644 --- a/SabreTools.Serialization/Files/ArchiveDotOrg.Deserializer.cs +++ b/SabreTools.Serialization/Files/ArchiveDotOrg.Deserializer.cs @@ -2,6 +2,11 @@ namespace SabreTools.Serialization.Files { public partial class ArchiveDotOrg : XmlFile { - // All serialization logic is in the base class + /// + public static Models.ArchiveDotOrg.Files? Deserialize(string? path) + { + var obj = new ArchiveDotOrg(); + return obj.DeserializeImpl(path); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization/Files/AttractMode.Deserializer.cs b/SabreTools.Serialization/Files/AttractMode.Deserializer.cs index cac65866..e26ada74 100644 --- a/SabreTools.Serialization/Files/AttractMode.Deserializer.cs +++ b/SabreTools.Serialization/Files/AttractMode.Deserializer.cs @@ -1,12 +1,18 @@ -using SabreTools.Models.AttractMode; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Files { - public partial class AttractMode : IFileSerializer + public partial class AttractMode : IFileSerializer { + /// + public static Models.AttractMode.MetadataFile? Deserialize(string? path) + { + var obj = new AttractMode(); + return obj.DeserializeImpl(path); + } + /// - public MetadataFile? Deserialize(string? path) + public Models.AttractMode.MetadataFile? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.AttractMode().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/BDPlus.Deserializer.cs b/SabreTools.Serialization/Files/BDPlus.Deserializer.cs index 5ee33ca6..32ae5c39 100644 --- a/SabreTools.Serialization/Files/BDPlus.Deserializer.cs +++ b/SabreTools.Serialization/Files/BDPlus.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class BDPlus : IFileSerializer { + /// + public static Models.BDPlus.SVM? Deserialize(string? path) + { + var obj = new BDPlus(); + return obj.DeserializeImpl(path); + } + /// - public Models.BDPlus.SVM? Deserialize(string? path) + public Models.BDPlus.SVM? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.BDPlus().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/BFPK.Deserializer.cs b/SabreTools.Serialization/Files/BFPK.Deserializer.cs index b05e9a0b..cb118cad 100644 --- a/SabreTools.Serialization/Files/BFPK.Deserializer.cs +++ b/SabreTools.Serialization/Files/BFPK.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class BFPK : IFileSerializer { + /// + public static Models.BFPK.Archive? Deserialize(string? path) + { + var obj = new BFPK(); + return obj.DeserializeImpl(path); + } + /// - public Models.BFPK.Archive? Deserialize(string? path) + public Models.BFPK.Archive? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.BFPK().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/BSP.Deserializer.cs b/SabreTools.Serialization/Files/BSP.Deserializer.cs index c1fd6015..cfb71e41 100644 --- a/SabreTools.Serialization/Files/BSP.Deserializer.cs +++ b/SabreTools.Serialization/Files/BSP.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class BSP : IFileSerializer { + /// + public static Models.BSP.File? Deserialize(string? path) + { + var obj = new BSP(); + return obj.DeserializeImpl(path); + } + /// - public Models.BSP.File? Deserialize(string? path) + public Models.BSP.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.BSP().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/CFB.Deserializer.cs b/SabreTools.Serialization/Files/CFB.Deserializer.cs index 119e1438..283051e3 100644 --- a/SabreTools.Serialization/Files/CFB.Deserializer.cs +++ b/SabreTools.Serialization/Files/CFB.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class CFB : IFileSerializer { + /// + public static Models.CFB.Binary? Deserialize(string? path) + { + var obj = new CFB(); + return obj.DeserializeImpl(path); + } + /// - public Models.CFB.Binary? Deserialize(string? path) + public Models.CFB.Binary? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.CFB().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/CIA.Deserializer.cs b/SabreTools.Serialization/Files/CIA.Deserializer.cs index 229a5e57..e0c56be7 100644 --- a/SabreTools.Serialization/Files/CIA.Deserializer.cs +++ b/SabreTools.Serialization/Files/CIA.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class CIA : IFileSerializer { + /// + public static Models.N3DS.CIA? Deserialize(string? path) + { + var obj = new CIA(); + return obj.DeserializeImpl(path); + } + /// - public Models.N3DS.CIA? Deserialize(string? path) + public Models.N3DS.CIA? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.CIA().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/Catalog.Deserializer.cs b/SabreTools.Serialization/Files/Catalog.Deserializer.cs index 05d9345a..b566f731 100644 --- a/SabreTools.Serialization/Files/Catalog.Deserializer.cs +++ b/SabreTools.Serialization/Files/Catalog.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class Catalog : JsonFile { + /// + public static Models.Xbox.Catalog? Deserialize(string? path) + { + var obj = new Catalog(); + return obj.DeserializeImpl(path); + } + // Catalog.js file is a UTF-16 LE JSON - public new Models.Xbox.Catalog? Deserialize(string? path) - => Deserialize(path, new UnicodeEncoding()); + public new Models.Xbox.Catalog? DeserializeImpl(string? path) + => DeserializeImpl(path, new UnicodeEncoding()); } } diff --git a/SabreTools.Serialization/Files/ClrMamePro.Deserializer.cs b/SabreTools.Serialization/Files/ClrMamePro.Deserializer.cs index f6b3b133..e782a944 100644 --- a/SabreTools.Serialization/Files/ClrMamePro.Deserializer.cs +++ b/SabreTools.Serialization/Files/ClrMamePro.Deserializer.cs @@ -1,15 +1,29 @@ -using SabreTools.Models.ClrMamePro; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Files { - public partial class ClrMamePro : IFileSerializer + public partial class ClrMamePro : IFileSerializer { - /// - public MetadataFile? Deserialize(string? path) => Deserialize(path, true); + /// + public static Models.ClrMamePro.MetadataFile? Deserialize(string? path) + { + var obj = new ClrMamePro(); + return obj.DeserializeImpl(path); + } + + /// + public static Models.ClrMamePro.MetadataFile? Deserialize(string? path, bool quotes) + { + var obj = new ClrMamePro(); + return obj.DeserializeImpl(path, quotes); + } /// - public MetadataFile? Deserialize(string? path, bool quotes) + public Models.ClrMamePro.MetadataFile? DeserializeImpl(string? path) + => DeserializeImpl(path, true); + + /// + public Models.ClrMamePro.MetadataFile? DeserializeImpl(string? path, bool quotes) { using var stream = PathProcessor.OpenStream(path); return new Streams.ClrMamePro().Deserialize(stream, quotes); diff --git a/SabreTools.Serialization/Files/CueSheet.Deserializer.cs b/SabreTools.Serialization/Files/CueSheet.Deserializer.cs index 4223650b..0713bd7a 100644 --- a/SabreTools.Serialization/Files/CueSheet.Deserializer.cs +++ b/SabreTools.Serialization/Files/CueSheet.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class CueSheet : IFileSerializer { + /// + public static Models.CueSheets.CueSheet? Deserialize(string? path) + { + var obj = new CueSheet(); + return obj.DeserializeImpl(path); + } + /// - public Models.CueSheets.CueSheet? Deserialize(string? path) + public Models.CueSheets.CueSheet? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.CueSheet().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/DosCenter.Deserializer.cs b/SabreTools.Serialization/Files/DosCenter.Deserializer.cs index 8d735642..dc159308 100644 --- a/SabreTools.Serialization/Files/DosCenter.Deserializer.cs +++ b/SabreTools.Serialization/Files/DosCenter.Deserializer.cs @@ -1,12 +1,18 @@ -using SabreTools.Models.DosCenter; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Files { - public partial class DosCenter : IFileSerializer + public partial class DosCenter : IFileSerializer { + /// + public static Models.DosCenter.MetadataFile? Deserialize(string? path) + { + var obj = new DosCenter(); + return obj.DeserializeImpl(path); + } + /// - public MetadataFile? Deserialize(string? path) + public Models.DosCenter.MetadataFile? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.DosCenter().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/EverdriveSMDB.Deserializer.cs b/SabreTools.Serialization/Files/EverdriveSMDB.Deserializer.cs index d36d0e5d..7ffa47a3 100644 --- a/SabreTools.Serialization/Files/EverdriveSMDB.Deserializer.cs +++ b/SabreTools.Serialization/Files/EverdriveSMDB.Deserializer.cs @@ -1,12 +1,18 @@ -using SabreTools.Models.EverdriveSMDB; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Files { - public partial class EverdriveSMDB : IFileSerializer + public partial class EverdriveSMDB : IFileSerializer { + /// + public static Models.EverdriveSMDB.MetadataFile? Deserialize(string? path) + { + var obj = new EverdriveSMDB(); + return obj.DeserializeImpl(path); + } + /// - public MetadataFile? Deserialize(string? path) + public Models.EverdriveSMDB.MetadataFile? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.EverdriveSMDB().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/GCF.Deserializer.cs b/SabreTools.Serialization/Files/GCF.Deserializer.cs index a61e95bb..6f67a729 100644 --- a/SabreTools.Serialization/Files/GCF.Deserializer.cs +++ b/SabreTools.Serialization/Files/GCF.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class GCF : IFileSerializer { + /// + public static Models.GCF.File? Deserialize(string? path) + { + var obj = new GCF(); + return obj.DeserializeImpl(path); + } + /// - public Models.GCF.File? Deserialize(string? path) + public Models.GCF.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.GCF().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/Hashfile.Deserializer.cs b/SabreTools.Serialization/Files/Hashfile.Deserializer.cs index cc7721b4..9829fd05 100644 --- a/SabreTools.Serialization/Files/Hashfile.Deserializer.cs +++ b/SabreTools.Serialization/Files/Hashfile.Deserializer.cs @@ -4,11 +4,26 @@ namespace SabreTools.Serialization.Files { public partial class Hashfile : IFileSerializer { - /// - public Models.Hashfile.Hashfile? Deserialize(string? path) => Deserialize(path, Hash.CRC); + /// + public static Models.Hashfile.Hashfile? Deserialize(string? path) + { + var obj = new Hashfile(); + return obj.DeserializeImpl(path); + } + + /// + public static Models.Hashfile.Hashfile? Deserialize(string? path, Hash hash) + { + var obj = new Hashfile(); + return obj.DeserializeImpl(path, hash); + } /// - public Models.Hashfile.Hashfile? Deserialize(string? path, Hash hash) + public Models.Hashfile.Hashfile? DeserializeImpl(string? path) + => DeserializeImpl(path, Hash.CRC); + + /// + public Models.Hashfile.Hashfile? DeserializeImpl(string? path, Hash hash) { using var stream = PathProcessor.OpenStream(path); return new Streams.Hashfile().Deserialize(stream, hash); diff --git a/SabreTools.Serialization/Files/IRD.Deserializer.cs b/SabreTools.Serialization/Files/IRD.Deserializer.cs index d65b9567..3fd03574 100644 --- a/SabreTools.Serialization/Files/IRD.Deserializer.cs +++ b/SabreTools.Serialization/Files/IRD.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class IRD : IFileSerializer { + /// + public static Models.IRD.File? Deserialize(string? path) + { + var obj = new IRD(); + return obj.DeserializeImpl(path); + } + /// - public Models.IRD.File? Deserialize(string? path) + public Models.IRD.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.IRD().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/InstallShieldCabinet.Deserializer.cs b/SabreTools.Serialization/Files/InstallShieldCabinet.Deserializer.cs index 87be5f26..108e7970 100644 --- a/SabreTools.Serialization/Files/InstallShieldCabinet.Deserializer.cs +++ b/SabreTools.Serialization/Files/InstallShieldCabinet.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class InstallShieldCabinet : IFileSerializer { + /// + public static Models.InstallShieldCabinet.Cabinet? Deserialize(string? path) + { + var obj = new InstallShieldCabinet(); + return obj.DeserializeImpl(path); + } + /// - public Models.InstallShieldCabinet.Cabinet? Deserialize(string? path) + public Models.InstallShieldCabinet.Cabinet? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.InstallShieldCabinet().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/JsonFile.Deserializer.cs b/SabreTools.Serialization/Files/JsonFile.Deserializer.cs index a31e1ae9..092c2489 100644 --- a/SabreTools.Serialization/Files/JsonFile.Deserializer.cs +++ b/SabreTools.Serialization/Files/JsonFile.Deserializer.cs @@ -10,8 +10,8 @@ namespace SabreTools.Serialization.Files public partial class JsonFile : IFileSerializer { /// - public T? Deserialize(string? path) - => Deserialize(path, new UTF8Encoding(false)); + public T? DeserializeImpl(string? path) + => DeserializeImpl(path, new UTF8Encoding(false)); /// /// Deserialize a file into @@ -20,7 +20,7 @@ namespace SabreTools.Serialization.Files /// Path to deserialize from /// Encoding to parse text as /// Filled object on success, null on error - public T? Deserialize(string? path, Encoding encoding) + public T? DeserializeImpl(string? path, Encoding encoding) { using var data = PathProcessor.OpenStream(path); return new Streams.JsonFile().Deserialize(data, encoding); diff --git a/SabreTools.Serialization/Files/LinearExecutable.Deserializer.cs b/SabreTools.Serialization/Files/LinearExecutable.Deserializer.cs index 29ccc6a9..795d3b18 100644 --- a/SabreTools.Serialization/Files/LinearExecutable.Deserializer.cs +++ b/SabreTools.Serialization/Files/LinearExecutable.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class LinearExecutable : IFileSerializer { + /// + public static Models.LinearExecutable.Executable? Deserialize(string? path) + { + var obj = new LinearExecutable(); + return obj.DeserializeImpl(path); + } + /// - public Models.LinearExecutable.Executable? Deserialize(string? path) + public Models.LinearExecutable.Executable? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.LinearExecutable().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/Listrom.Deserializer.cs b/SabreTools.Serialization/Files/Listrom.Deserializer.cs index 64b92dce..ec433ea0 100644 --- a/SabreTools.Serialization/Files/Listrom.Deserializer.cs +++ b/SabreTools.Serialization/Files/Listrom.Deserializer.cs @@ -1,12 +1,18 @@ -using SabreTools.Models.Listrom; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Files { - public partial class Listrom : IFileSerializer + public partial class Listrom : IFileSerializer { + /// + public static Models.Listrom.MetadataFile? Deserialize(string? path) + { + var obj = new Listrom(); + return obj.DeserializeImpl(path); + } + /// - public MetadataFile? Deserialize(string? path) + public Models.Listrom.MetadataFile? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.Listrom().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/Listxml.Deserializer.cs b/SabreTools.Serialization/Files/Listxml.Deserializer.cs index df9ae2cd..889f685e 100644 --- a/SabreTools.Serialization/Files/Listxml.Deserializer.cs +++ b/SabreTools.Serialization/Files/Listxml.Deserializer.cs @@ -2,6 +2,11 @@ namespace SabreTools.Serialization.Files { public partial class Listxml : XmlFile { - // All serialization logic is in the base class + /// + public static Models.Listxml.Mame? Deserialize(string? path) + { + var obj = new Listxml(); + return obj.DeserializeImpl(path); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization/Files/Logiqx.Deserializer.cs b/SabreTools.Serialization/Files/Logiqx.Deserializer.cs index 70468c1c..8a999545 100644 --- a/SabreTools.Serialization/Files/Logiqx.Deserializer.cs +++ b/SabreTools.Serialization/Files/Logiqx.Deserializer.cs @@ -2,6 +2,11 @@ namespace SabreTools.Serialization.Files { public partial class Logiqx : XmlFile { - // All serialization logic is in the base class + /// + public static Models.Logiqx.Datafile? Deserialize(string? path) + { + var obj = new Logiqx(); + return obj.DeserializeImpl(path); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization/Files/M1.Deserializer.cs b/SabreTools.Serialization/Files/M1.Deserializer.cs index 1296da8f..7bbaa444 100644 --- a/SabreTools.Serialization/Files/M1.Deserializer.cs +++ b/SabreTools.Serialization/Files/M1.Deserializer.cs @@ -2,6 +2,11 @@ namespace SabreTools.Serialization.Files { public partial class M1 : XmlFile { - // All serialization logic is in the base class + /// + public static Models.Listxml.M1? Deserialize(string? path) + { + var obj = new M1(); + return obj.DeserializeImpl(path); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization/Files/MSDOS.Deserializer.cs b/SabreTools.Serialization/Files/MSDOS.Deserializer.cs index 55acbdaf..3b284eca 100644 --- a/SabreTools.Serialization/Files/MSDOS.Deserializer.cs +++ b/SabreTools.Serialization/Files/MSDOS.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class MSDOS : IFileSerializer { + /// + public static Models.MSDOS.Executable? Deserialize(string? path) + { + var obj = new MSDOS(); + return obj.DeserializeImpl(path); + } + /// - public Models.MSDOS.Executable? Deserialize(string? path) + public Models.MSDOS.Executable? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.MSDOS().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/MicrosoftCabinet.Deserializer.cs b/SabreTools.Serialization/Files/MicrosoftCabinet.Deserializer.cs index 7a3a1112..2a633244 100644 --- a/SabreTools.Serialization/Files/MicrosoftCabinet.Deserializer.cs +++ b/SabreTools.Serialization/Files/MicrosoftCabinet.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class MicrosoftCabinet : IFileSerializer { + /// + public static Models.MicrosoftCabinet.Cabinet? Deserialize(string? path) + { + var obj = new MicrosoftCabinet(); + return obj.DeserializeImpl(path); + } + /// - public Models.MicrosoftCabinet.Cabinet? Deserialize(string? path) + public Models.MicrosoftCabinet.Cabinet? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.MicrosoftCabinet().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/MoPaQ.Deserializer.cs b/SabreTools.Serialization/Files/MoPaQ.Deserializer.cs index 1e18ddcb..81731848 100644 --- a/SabreTools.Serialization/Files/MoPaQ.Deserializer.cs +++ b/SabreTools.Serialization/Files/MoPaQ.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class MoPaQ : IFileSerializer { + /// + public static Models.MoPaQ.Archive? Deserialize(string? path) + { + var obj = new MoPaQ(); + return obj.DeserializeImpl(path); + } + /// - public Models.MoPaQ.Archive? Deserialize(string? path) + public Models.MoPaQ.Archive? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.MoPaQ().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/N3DS.Deserializer.cs b/SabreTools.Serialization/Files/N3DS.Deserializer.cs index cf3ebfe3..5091b22a 100644 --- a/SabreTools.Serialization/Files/N3DS.Deserializer.cs +++ b/SabreTools.Serialization/Files/N3DS.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class N3DS : IFileSerializer { + /// + public static Models.N3DS.Cart? Deserialize(string? path) + { + var obj = new N3DS(); + return obj.DeserializeImpl(path); + } + /// - public Models.N3DS.Cart? Deserialize(string? path) + public Models.N3DS.Cart? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.N3DS().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/NCF.Deserializer.cs b/SabreTools.Serialization/Files/NCF.Deserializer.cs index fdbc64c0..c8e455d9 100644 --- a/SabreTools.Serialization/Files/NCF.Deserializer.cs +++ b/SabreTools.Serialization/Files/NCF.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class NCF : IFileSerializer { + /// + public static Models.NCF.File? Deserialize(string? path) + { + var obj = new NCF(); + return obj.DeserializeImpl(path); + } + /// - public Models.NCF.File? Deserialize(string? path) + public Models.NCF.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.NCF().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/NewExecutable.Deserializer.cs b/SabreTools.Serialization/Files/NewExecutable.Deserializer.cs index 6ecfd00e..8e27d846 100644 --- a/SabreTools.Serialization/Files/NewExecutable.Deserializer.cs +++ b/SabreTools.Serialization/Files/NewExecutable.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class NewExecutable : IFileSerializer { + /// + public static Models.NewExecutable.Executable? Deserialize(string? path) + { + var obj = new NewExecutable(); + return obj.DeserializeImpl(path); + } + /// - public Models.NewExecutable.Executable? Deserialize(string? path) + public Models.NewExecutable.Executable? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.NewExecutable().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/Nitro.Deserializer.cs b/SabreTools.Serialization/Files/Nitro.Deserializer.cs index 30d0f962..9f88338f 100644 --- a/SabreTools.Serialization/Files/Nitro.Deserializer.cs +++ b/SabreTools.Serialization/Files/Nitro.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class Nitro : IFileSerializer { + /// + public static Models.Nitro.Cart? Deserialize(string? path) + { + var obj = new Nitro(); + return obj.DeserializeImpl(path); + } + /// - public Models.Nitro.Cart? Deserialize(string? path) + public Models.Nitro.Cart? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.Nitro().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/OfflineList.Deserializer.cs b/SabreTools.Serialization/Files/OfflineList.Deserializer.cs index 03c639c3..6bd0536f 100644 --- a/SabreTools.Serialization/Files/OfflineList.Deserializer.cs +++ b/SabreTools.Serialization/Files/OfflineList.Deserializer.cs @@ -2,6 +2,11 @@ namespace SabreTools.Serialization.Files { public partial class OfflineList : XmlFile { - // All serialization logic is in the base class + /// + public static Models.OfflineList.Dat? Deserialize(string? path) + { + var obj = new OfflineList(); + return obj.DeserializeImpl(path); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization/Files/OpenMSX.Deserializer.cs b/SabreTools.Serialization/Files/OpenMSX.Deserializer.cs index 4a553a31..6df02b56 100644 --- a/SabreTools.Serialization/Files/OpenMSX.Deserializer.cs +++ b/SabreTools.Serialization/Files/OpenMSX.Deserializer.cs @@ -2,6 +2,11 @@ namespace SabreTools.Serialization.Files { public partial class OpenMSX : XmlFile { - // All serialization logic is in the base class + /// + public static Models.OpenMSX.SoftwareDb? Deserialize(string? path) + { + var obj = new OpenMSX(); + return obj.DeserializeImpl(path); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization/Files/PAK.Deserializer.cs b/SabreTools.Serialization/Files/PAK.Deserializer.cs index a9db7f33..f836d619 100644 --- a/SabreTools.Serialization/Files/PAK.Deserializer.cs +++ b/SabreTools.Serialization/Files/PAK.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class PAK : IFileSerializer { + /// + public static Models.PAK.File? Deserialize(string? path) + { + var obj = new PAK(); + return obj.DeserializeImpl(path); + } + /// - public Models.PAK.File? Deserialize(string? path) + public Models.PAK.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.PAK().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/PFF.Deserializer.cs b/SabreTools.Serialization/Files/PFF.Deserializer.cs index 35e84887..f9ad70c2 100644 --- a/SabreTools.Serialization/Files/PFF.Deserializer.cs +++ b/SabreTools.Serialization/Files/PFF.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class PFF : IFileSerializer { + /// + public static Models.PFF.Archive? Deserialize(string? path) + { + var obj = new PFF(); + return obj.DeserializeImpl(path); + } + /// - public Models.PFF.Archive? Deserialize(string? path) + public Models.PFF.Archive? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.PFF().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/PIC.Deserializer.cs b/SabreTools.Serialization/Files/PIC.Deserializer.cs index 31359e8d..48ec4e86 100644 --- a/SabreTools.Serialization/Files/PIC.Deserializer.cs +++ b/SabreTools.Serialization/Files/PIC.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class PIC : IFileSerializer { + /// + public static Models.PIC.DiscInformation? Deserialize(string? path) + { + var obj = new PIC(); + return obj.DeserializeImpl(path); + } + /// - public Models.PIC.DiscInformation? Deserialize(string? path) + public Models.PIC.DiscInformation? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.PIC().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/PlayJAudio.Deserializer.cs b/SabreTools.Serialization/Files/PlayJAudio.Deserializer.cs index 4b7332b6..34616954 100644 --- a/SabreTools.Serialization/Files/PlayJAudio.Deserializer.cs +++ b/SabreTools.Serialization/Files/PlayJAudio.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class PlayJAudio : IFileSerializer { + /// + public static Models.PlayJ.AudioFile? Deserialize(string? path) + { + var obj = new PlayJAudio(); + return obj.DeserializeImpl(path); + } + /// - public Models.PlayJ.AudioFile? Deserialize(string? path) + public Models.PlayJ.AudioFile? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.PlayJAudio().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/PlayJPlaylist.Deserializer.cs b/SabreTools.Serialization/Files/PlayJPlaylist.Deserializer.cs index 37bfce94..5ab01f44 100644 --- a/SabreTools.Serialization/Files/PlayJPlaylist.Deserializer.cs +++ b/SabreTools.Serialization/Files/PlayJPlaylist.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class PlayJPlaylist : IFileSerializer { + /// + public static Models.PlayJ.Playlist? Deserialize(string? path) + { + var obj = new PlayJPlaylist(); + return obj.DeserializeImpl(path); + } + /// - public Models.PlayJ.Playlist? Deserialize(string? path) + public Models.PlayJ.Playlist? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.PlayJPlaylist().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/PortableExecutable.Deserializer.cs b/SabreTools.Serialization/Files/PortableExecutable.Deserializer.cs index 0555fa3f..0f11db7c 100644 --- a/SabreTools.Serialization/Files/PortableExecutable.Deserializer.cs +++ b/SabreTools.Serialization/Files/PortableExecutable.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class PortableExecutable : IFileSerializer { + /// + public static Models.PortableExecutable.Executable? Deserialize(string? path) + { + var obj = new PortableExecutable(); + return obj.DeserializeImpl(path); + } + /// - public Models.PortableExecutable.Executable? Deserialize(string? path) + public Models.PortableExecutable.Executable? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.PortableExecutable().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/Quantum.Deserializer.cs b/SabreTools.Serialization/Files/Quantum.Deserializer.cs index 7eeb17d0..5f149394 100644 --- a/SabreTools.Serialization/Files/Quantum.Deserializer.cs +++ b/SabreTools.Serialization/Files/Quantum.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class Quantum : IFileSerializer { + /// + public static Models.Quantum.Archive? Deserialize(string? path) + { + var obj = new Quantum(); + return obj.DeserializeImpl(path); + } + /// - public Models.Quantum.Archive? Deserialize(string? path) + public Models.Quantum.Archive? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.Quantum().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/RomCenter.Deserializer.cs b/SabreTools.Serialization/Files/RomCenter.Deserializer.cs index 87ae67d9..3ed8cce1 100644 --- a/SabreTools.Serialization/Files/RomCenter.Deserializer.cs +++ b/SabreTools.Serialization/Files/RomCenter.Deserializer.cs @@ -1,12 +1,18 @@ -using SabreTools.Models.RomCenter; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Files { - public partial class RomCenter : IFileSerializer + public partial class RomCenter : IFileSerializer { + /// + public static Models.RomCenter.MetadataFile? Deserialize(string? path) + { + var obj = new RomCenter(); + return obj.DeserializeImpl(path); + } + /// - public MetadataFile? Deserialize(string? path) + public Models.RomCenter.MetadataFile? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.RomCenter().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/SGA.Deserializer.cs b/SabreTools.Serialization/Files/SGA.Deserializer.cs index 960bec72..ebe631e1 100644 --- a/SabreTools.Serialization/Files/SGA.Deserializer.cs +++ b/SabreTools.Serialization/Files/SGA.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class SGA : IFileSerializer { + /// + public static Models.SGA.File? Deserialize(string? path) + { + var obj = new SGA(); + return obj.DeserializeImpl(path); + } + /// - public Models.SGA.File? Deserialize(string? path) + public Models.SGA.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.SGA().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/SeparatedValue.Deserializer.cs b/SabreTools.Serialization/Files/SeparatedValue.Deserializer.cs index f66b6fe2..568e5ba4 100644 --- a/SabreTools.Serialization/Files/SeparatedValue.Deserializer.cs +++ b/SabreTools.Serialization/Files/SeparatedValue.Deserializer.cs @@ -1,15 +1,29 @@ -using SabreTools.Models.SeparatedValue; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Files { - public partial class SeparatedValue : IFileSerializer + public partial class SeparatedValue : IFileSerializer { - /// - public MetadataFile? Deserialize(string? path) => Deserialize(path, ','); + /// + public static Models.SeparatedValue.MetadataFile? Deserialize(string? path) + { + var obj = new SeparatedValue(); + return obj.DeserializeImpl(path); + } + + /// + public static Models.SeparatedValue.MetadataFile? Deserialize(string? path, char delim) + { + var obj = new SeparatedValue(); + return obj.DeserializeImpl(path, delim); + } /// - public MetadataFile? Deserialize(string? path, char delim) + public Models.SeparatedValue.MetadataFile? DeserializeImpl(string? path) + => DeserializeImpl(path, ','); + + /// + public Models.SeparatedValue.MetadataFile? DeserializeImpl(string? path, char delim) { using var stream = PathProcessor.OpenStream(path); return new Streams.SeparatedValue().Deserialize(stream, delim); diff --git a/SabreTools.Serialization/Files/SoftwareList.Deserializer.cs b/SabreTools.Serialization/Files/SoftwareList.Deserializer.cs index 42e01a9b..9daeace2 100644 --- a/SabreTools.Serialization/Files/SoftwareList.Deserializer.cs +++ b/SabreTools.Serialization/Files/SoftwareList.Deserializer.cs @@ -2,6 +2,11 @@ namespace SabreTools.Serialization.Files { public partial class SoftwareList : XmlFile { - // All serialization logic is in the base class + /// + public static Models.SoftwareList.SoftwareList? Deserialize(string? path) + { + var obj = new SoftwareList(); + return obj.DeserializeImpl(path); + } } } \ No newline at end of file diff --git a/SabreTools.Serialization/Files/VBSP.Deserializer.cs b/SabreTools.Serialization/Files/VBSP.Deserializer.cs index d0d6db2b..0992c6b3 100644 --- a/SabreTools.Serialization/Files/VBSP.Deserializer.cs +++ b/SabreTools.Serialization/Files/VBSP.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class VBSP : IFileSerializer { + /// + public static Models.VBSP.File? Deserialize(string? path) + { + var obj = new VBSP(); + return obj.DeserializeImpl(path); + } + /// - public Models.VBSP.File? Deserialize(string? path) + public Models.VBSP.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.VBSP().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/VPK.Deserializer.cs b/SabreTools.Serialization/Files/VPK.Deserializer.cs index fe60c77d..38d7e1fb 100644 --- a/SabreTools.Serialization/Files/VPK.Deserializer.cs +++ b/SabreTools.Serialization/Files/VPK.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class VPK : IFileSerializer { + /// + public static Models.VPK.File? Deserialize(string? path) + { + var obj = new VPK(); + return obj.DeserializeImpl(path); + } + /// - public Models.VPK.File? Deserialize(string? path) + public Models.VPK.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.VPK().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/WAD.Deserializer.cs b/SabreTools.Serialization/Files/WAD.Deserializer.cs index 21ffd497..202c6181 100644 --- a/SabreTools.Serialization/Files/WAD.Deserializer.cs +++ b/SabreTools.Serialization/Files/WAD.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class WAD : IFileSerializer { + /// + public static Models.WAD.File? Deserialize(string? path) + { + var obj = new WAD(); + return obj.DeserializeImpl(path); + } + /// - public Models.WAD.File? Deserialize(string? path) + public Models.WAD.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.WAD().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/XZP.Deserializer.cs b/SabreTools.Serialization/Files/XZP.Deserializer.cs index 8cb1d324..87a9a1c1 100644 --- a/SabreTools.Serialization/Files/XZP.Deserializer.cs +++ b/SabreTools.Serialization/Files/XZP.Deserializer.cs @@ -4,8 +4,15 @@ namespace SabreTools.Serialization.Files { public partial class XZP : IFileSerializer { + /// + public static Models.XZP.File? Deserialize(string? path) + { + var obj = new XZP(); + return obj.DeserializeImpl(path); + } + /// - public Models.XZP.File? Deserialize(string? path) + public Models.XZP.File? DeserializeImpl(string? path) { using var stream = PathProcessor.OpenStream(path); return new Streams.XZP().Deserialize(stream); diff --git a/SabreTools.Serialization/Files/XmlFile.Deserializer.cs b/SabreTools.Serialization/Files/XmlFile.Deserializer.cs index f57ce06e..d12a506d 100644 --- a/SabreTools.Serialization/Files/XmlFile.Deserializer.cs +++ b/SabreTools.Serialization/Files/XmlFile.Deserializer.cs @@ -9,7 +9,7 @@ namespace SabreTools.Serialization.Files public partial class XmlFile : IFileSerializer { /// - public T? Deserialize(string? path) + public T? DeserializeImpl(string? path) { using var data = PathProcessor.OpenStream(path); return new Streams.XmlFile().Deserialize(data); diff --git a/SabreTools.Serialization/Interfaces/IFileSerializer.cs b/SabreTools.Serialization/Interfaces/IFileSerializer.cs index 28e281ec..75d914c7 100644 --- a/SabreTools.Serialization/Interfaces/IFileSerializer.cs +++ b/SabreTools.Serialization/Interfaces/IFileSerializer.cs @@ -11,7 +11,7 @@ namespace SabreTools.Serialization.Interfaces /// Type of object to deserialize to /// Path to deserialize from /// Filled object on success, null on error - T? Deserialize(string? path); + T? DeserializeImpl(string? path); /// /// Serialize a into a file