[DatFile] Remove cloneable, use constructor instead

This commit is contained in:
Matt Nadareski
2016-11-08 16:04:26 -08:00
parent 50d0a40ae3
commit 5ef4cb0efd
5 changed files with 55 additions and 46 deletions

View File

@@ -5,7 +5,7 @@ using SabreTools.Helper.Data;
namespace SabreTools.Helper.Dats namespace SabreTools.Helper.Dats
{ {
public partial class DatFile : ICloneable public partial class DatFile
{ {
#region Private instance variables #region Private instance variables
@@ -486,43 +486,52 @@ namespace SabreTools.Helper.Dats
#endregion #endregion
#region Cloning Methods [MODULAR DONE] #region Constructors
public object Clone() /// <summary>
/// Create a new, empty DatFile object
/// </summary>
public DatFile()
{ {
return new DatFile _files = new SortedDictionary<string, List<DatItem>>();
}
/// <summary>
/// Create a new DatFile from an existing one
/// </summary>
/// <param name="df"></param>
public DatFile(DatFile datFile)
{ {
FileName = _fileName, _fileName = datFile.FileName;
Name = _name, _name = datFile.Name;
Description = _description, _description = datFile.Description;
RootDir = _rootDir, _rootDir = datFile.RootDir;
Category = _category, _category = datFile.Category;
Version = _version, _version = datFile.Version;
Date = _date, _date = datFile.Date;
Author = _author, _author = datFile.Author;
Email = _email, _email = datFile.Email;
Homepage = _homepage, _homepage = datFile.Homepage;
Url = _url, _url = datFile.Url;
Comment = _comment, _comment = datFile.Comment;
Header = _header, _header = datFile.Header;
Type = _type, _type = datFile.Type;
ForceMerging = _forceMerging, _forceMerging = datFile.ForceMerging;
ForceNodump = _forceNodump, _forceNodump = datFile.ForceNodump;
ForcePacking = _forcePacking, _forcePacking = datFile.ForcePacking;
ExcludeOf = _excludeOf, _excludeOf = datFile.ExcludeOf;
DatFormat = _datFormat, _datFormat = datFile.DatFormat;
MergeRoms = _mergeRoms, _mergeRoms = datFile.MergeRoms;
SortedBy = SortedBy.Default, _sortedBy = SortedBy.Default;
UseGame = _useGame, _useGame = datFile.UseGame;
Prefix = _prefix, _prefix = datFile.Prefix;
Postfix = _postfix, _postfix = datFile.Postfix;
Quotes = _quotes, _quotes = datFile.Quotes;
RepExt = _repExt, _repExt = datFile.RepExt;
AddExt = _addExt, _addExt = datFile.AddExt;
RemExt = _remExt, _remExt = datFile.RemExt;
GameName = _gameName, _gameName = datFile.GameName;
Romba = _romba, _romba = datFile.Romba;
};
} }
#endregion #endregion

View File

@@ -157,7 +157,7 @@ namespace SabreTools.Helper.Dats
if ((diff & DiffMode.NoDupes) != 0) if ((diff & DiffMode.NoDupes) != 0)
{ {
post = " (No Duplicates)"; post = " (No Duplicates)";
outerDiffData = (DatFile)Clone(); outerDiffData = new DatFile(this);
outerDiffData.FileName += post; outerDiffData.FileName += post;
outerDiffData.Name += post; outerDiffData.Name += post;
outerDiffData.Description += post; outerDiffData.Description += post;
@@ -168,7 +168,7 @@ namespace SabreTools.Helper.Dats
if ((diff & DiffMode.Dupes) != 0) if ((diff & DiffMode.Dupes) != 0)
{ {
post = " (Duplicates)"; post = " (Duplicates)";
dupeData = (DatFile)Clone(); dupeData = new DatFile(this);
dupeData.FileName += post; dupeData.FileName += post;
dupeData.Name += post; dupeData.Name += post;
dupeData.Description += post; dupeData.Description += post;
@@ -186,7 +186,7 @@ namespace SabreTools.Helper.Dats
Parallel.For(0, inputs.Count, j => Parallel.For(0, inputs.Count, j =>
{ {
string innerpost = " (" + Path.GetFileNameWithoutExtension(inputs[j].Split('¬')[0]) + " Only)"; string innerpost = " (" + Path.GetFileNameWithoutExtension(inputs[j].Split('¬')[0]) + " Only)";
DatFile diffData = (DatFile)Clone(); DatFile diffData = new DatFile(this);
diffData.FileName += innerpost; diffData.FileName += innerpost;
diffData.Name += innerpost; diffData.Name += innerpost;
diffData.Description += innerpost; diffData.Description += innerpost;
@@ -319,7 +319,7 @@ namespace SabreTools.Helper.Dats
} }
else else
{ {
diffData = (DatFile)Clone(); diffData = new DatFile(this);
diffData.FileName += post; diffData.FileName += post;
diffData.Name += post; diffData.Name += post;
diffData.Description += post; diffData.Description += post;
@@ -459,7 +459,7 @@ namespace SabreTools.Helper.Dats
if (File.Exists(inputFileName)) if (File.Exists(inputFileName))
{ {
DatFile innerDatdata = (DatFile)Clone(); DatFile innerDatdata = new DatFile(this);
logger.User("Processing \"" + Path.GetFileName(inputFileName) + "\""); logger.User("Processing \"" + Path.GetFileName(inputFileName) + "\"");
innerDatdata.Parse(inputFileName, 0, 0, filter, trim, single, innerDatdata.Parse(inputFileName, 0, 0, filter, trim, single,
root, logger, true, clean, softlist, root, logger, true, clean, softlist,
@@ -480,7 +480,7 @@ namespace SabreTools.Helper.Dats
file => file =>
{ {
logger.User("Processing \"" + Path.GetFullPath(file).Remove(0, inputFileName.Length) + "\""); logger.User("Processing \"" + Path.GetFullPath(file).Remove(0, inputFileName.Length) + "\"");
DatFile innerDatdata = (DatFile)Clone(); DatFile innerDatdata = new DatFile(this);
innerDatdata.Parse(file, 0, 0, filter, innerDatdata.Parse(file, 0, 0, filter,
trim, single, root, logger, true, clean, softlist, trim, single, root, logger, true, clean, softlist,
keepext: ((innerDatdata.DatFormat & DatFormat.TSV) != 0 || (innerDatdata.DatFormat & DatFormat.CSV) != 0)); keepext: ((innerDatdata.DatFormat & DatFormat.TSV) != 0 || (innerDatdata.DatFormat & DatFormat.CSV) != 0));

View File

@@ -511,7 +511,7 @@ namespace SabreTools.Helper.Dats
} }
// Setup the fixdat // Setup the fixdat
DatFile matched = (DatFile)Clone(); DatFile matched = new DatFile(this);
matched.Reset(); matched.Reset();
matched.FileName = "fixDat_" + matched.FileName; matched.FileName = "fixDat_" + matched.FileName;
matched.Name = "fixDat_" + matched.Name; matched.Name = "fixDat_" + matched.Name;

View File

@@ -337,7 +337,7 @@ namespace SabreTools.Helper.Dats
BucketByGame(false, true, logger, output: false, lower: false); BucketByGame(false, true, logger, output: false, lower: false);
// Create a temporary DAT to add things to // Create a temporary DAT to add things to
DatFile tempDat = (DatFile)Clone(); DatFile tempDat = new DatFile(this);
tempDat.Name = null; tempDat.Name = null;
// Sort the input keys // Sort the input keys
@@ -354,7 +354,7 @@ namespace SabreTools.Helper.Dats
SplitByLevelHelper(tempDat, outDir, shortname, basedat, logger); SplitByLevelHelper(tempDat, outDir, shortname, basedat, logger);
// Reset the DAT for the next items // Reset the DAT for the next items
tempDat = (DatFile)Clone(); tempDat = new DatFile(this);
tempDat.Name = null; tempDat.Name = null;
} }

View File

@@ -113,7 +113,7 @@ namespace SabreTools
if (Directory.Exists(path) || File.Exists(path)) if (Directory.Exists(path) || File.Exists(path))
{ {
// Clone the base Dat for information // Clone the base Dat for information
DatFile datdata = (DatFile)basedat.Clone(); DatFile datdata = new DatFile(basedat);
string basePath = Path.GetFullPath(path); string basePath = Path.GetFullPath(path);
bool success = datdata.PopulateFromDir(basePath, noMD5, noSHA1, removeDateFromAutomaticName, parseArchivesAsFiles, enableGzip, bool success = datdata.PopulateFromDir(basePath, noMD5, noSHA1, removeDateFromAutomaticName, parseArchivesAsFiles, enableGzip,