mirror of
https://github.com/SabreTools/BinaryObjectScanner.git
synced 2026-04-21 21:54:13 +00:00
Reduce unncessary printing code
This commit is contained in:
@@ -11,7 +11,7 @@ namespace BinaryObjectScanner.Utilities
|
||||
/// <summary>
|
||||
/// Create an instance of a wrapper based on file type
|
||||
/// </summary>
|
||||
public static object? CreateWrapper(SupportedFileType fileType, Stream? data)
|
||||
public static IWrapper? CreateWrapper(SupportedFileType fileType, Stream? data)
|
||||
{
|
||||
switch (fileType)
|
||||
{
|
||||
@@ -60,7 +60,7 @@ namespace BinaryObjectScanner.Utilities
|
||||
/// </summary>
|
||||
/// <param name="stream">Stream data to parse</param>
|
||||
/// <returns>IWrapper representing the executable, null on error</returns>
|
||||
public static object? CreateExecutableWrapper(Stream? stream)
|
||||
public static IWrapper? CreateExecutableWrapper(Stream? stream)
|
||||
{
|
||||
// If we have no stream
|
||||
if (stream == null)
|
||||
|
||||
443
Test/Printer.cs
443
Test/Printer.cs
@@ -1,9 +1,8 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using BinaryObjectScanner.Utilities;
|
||||
using SabreTools.IO.Extensions;
|
||||
using SabreTools.Serialization.Wrappers;
|
||||
using SabreTools.Printing;
|
||||
|
||||
namespace Test
|
||||
{
|
||||
@@ -96,10 +95,15 @@ namespace Test
|
||||
#endif
|
||||
|
||||
// Create the output data
|
||||
var builder = wrapper.PrettyPrint();
|
||||
Console.WriteLine(builder);
|
||||
var builder = wrapper.ExportStringBuilder();
|
||||
if (builder == null)
|
||||
{
|
||||
Console.WriteLine("No item information could be generated");
|
||||
return;
|
||||
}
|
||||
|
||||
// Write the output data
|
||||
Console.WriteLine(builder);
|
||||
using var sw = new StreamWriter(File.OpenWrite($"{filenameBase}.txt"));
|
||||
sw.WriteLine(builder.ToString());
|
||||
}
|
||||
@@ -109,436 +113,5 @@ namespace Test
|
||||
Console.WriteLine();
|
||||
}
|
||||
}
|
||||
|
||||
#region Printing Implementations
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this object wrapper)
|
||||
{
|
||||
return wrapper switch
|
||||
{
|
||||
AACSMediaKeyBlock item => item.PrettyPrint(),
|
||||
BDPlusSVM item => item.PrettyPrint(),
|
||||
BFPK item => item.PrettyPrint(),
|
||||
BSP item => item.PrettyPrint(),
|
||||
CFB item => item.PrettyPrint(),
|
||||
CIA item => item.PrettyPrint(),
|
||||
GCF item => item.PrettyPrint(),
|
||||
InstallShieldCabinet item => item.PrettyPrint(),
|
||||
IRD item => item.PrettyPrint(),
|
||||
LinearExecutable item => item.PrettyPrint(),
|
||||
MicrosoftCabinet item => item.PrettyPrint(),
|
||||
MoPaQ item => item.PrettyPrint(),
|
||||
MSDOS item => item.PrettyPrint(),
|
||||
N3DS item => item.PrettyPrint(),
|
||||
NCF item => item.PrettyPrint(),
|
||||
NewExecutable item => item.PrettyPrint(),
|
||||
Nitro item => item.PrettyPrint(),
|
||||
PAK item => item.PrettyPrint(),
|
||||
PFF item => item.PrettyPrint(),
|
||||
PIC item => item.PrettyPrint(),
|
||||
PlayJAudioFile item => item.PrettyPrint(),
|
||||
PlayJPlaylist item => item.PrettyPrint(),
|
||||
PortableExecutable item => item.PrettyPrint(),
|
||||
Quantum item => item.PrettyPrint(),
|
||||
SGA item => item.PrettyPrint(),
|
||||
VBSP item => item.PrettyPrint(),
|
||||
VPK item => item.PrettyPrint(),
|
||||
WAD item => item.PrettyPrint(),
|
||||
XeMID item => item.PrettyPrint(),
|
||||
XMID item => item.PrettyPrint(),
|
||||
XZP item => item.PrettyPrint(),
|
||||
_ => new StringBuilder(),
|
||||
}; ;
|
||||
}
|
||||
|
||||
#if NET6_0_OR_GREATER
|
||||
/// <summary>
|
||||
/// Export the item information as JSON
|
||||
/// </summary>
|
||||
private static string ExportJSON(this object wrapper)
|
||||
{
|
||||
return wrapper switch
|
||||
{
|
||||
AACSMediaKeyBlock item => item.ExportJSON(),
|
||||
BDPlusSVM item => item.ExportJSON(),
|
||||
BFPK item => item.ExportJSON(),
|
||||
BSP item => item.ExportJSON(),
|
||||
CFB item => item.ExportJSON(),
|
||||
CIA item => item.ExportJSON(),
|
||||
GCF item => item.ExportJSON(),
|
||||
InstallShieldCabinet item => item.ExportJSON(),
|
||||
IRD item => item.ExportJSON(),
|
||||
LinearExecutable item => item.ExportJSON(),
|
||||
MicrosoftCabinet item => item.ExportJSON(),
|
||||
MoPaQ item => item.ExportJSON(),
|
||||
MSDOS item => item.ExportJSON(),
|
||||
N3DS item => item.ExportJSON(),
|
||||
NCF item => item.ExportJSON(),
|
||||
NewExecutable item => item.ExportJSON(),
|
||||
Nitro item => item.ExportJSON(),
|
||||
PAK item => item.ExportJSON(),
|
||||
PFF item => item.ExportJSON(),
|
||||
PIC item => item.ExportJSON(),
|
||||
PlayJAudioFile item => item.ExportJSON(),
|
||||
PlayJPlaylist item => item.ExportJSON(),
|
||||
PortableExecutable item => item.ExportJSON(),
|
||||
Quantum item => item.ExportJSON(),
|
||||
SGA item => item.ExportJSON(),
|
||||
VBSP item => item.ExportJSON(),
|
||||
VPK item => item.ExportJSON(),
|
||||
WAD item => item.ExportJSON(),
|
||||
XeMID item => item.ExportJSON(),
|
||||
XMID item => item.ExportJSON(),
|
||||
XZP item => item.ExportJSON(),
|
||||
_ => string.Empty,
|
||||
};
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this AACSMediaKeyBlock item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.AACSMediaKeyBlock.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this BDPlusSVM item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.BDPlusSVM.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this BFPK item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.BFPK.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this BSP item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.BSP.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this CFB item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.CFB.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this CIA item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.CIA.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this GCF item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.GCF.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this InstallShieldCabinet item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.InstallShieldCabinet.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this IRD item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.IRD.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this LinearExecutable item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.LinearExecutable.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this MicrosoftCabinet item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.MicrosoftCabinet.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this MoPaQ item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.MoPaQ.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this MSDOS item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.MSDOS.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this N3DS item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.N3DS.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this NCF item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.NCF.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this NewExecutable item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.NewExecutable.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this Nitro item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.Nitro.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this PAK item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.PAK.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this PFF item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.PFF.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this PIC item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.PIC.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this PlayJAudioFile item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.PlayJAudioFile.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this PlayJPlaylist item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.PlayJAudioPlaylist.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this PortableExecutable item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.PortableExecutable.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this Quantum item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.Quantum.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this SGA item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.SGA.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this VBSP item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.VBSP.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this VPK item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.VPK.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this WAD item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.WAD.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this XeMID item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.XeMID.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this XMID item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.XMID.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Export the item information as pretty-printed text
|
||||
/// </summary>
|
||||
private static StringBuilder PrettyPrint(this XZP item)
|
||||
{
|
||||
Console.WriteLine($"{item.Description()} wrapper created successfully!");
|
||||
var builder = new StringBuilder();
|
||||
SabreTools.Printing.XZP.Print(builder, item.Model);
|
||||
return builder;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user