JD2022-TU1/main/tools/apps/JDSongConverter/Converters/ConverterManager.cs

67 lines
3.2 KiB
C#

namespace JDSongConverter.Converters
{
/// <summary>
/// The class that has the responsability to convert a set of songs
/// </summary>
public class ConverterManager
{
#region Variables
public static ConverterManager Instance = new ConverterManager();
private static readonly Jd1ToJd2016Converter _jd1ToJd2016Converter = new Jd1ToJd2016Converter();
private static readonly Jd2ToJd2016Converter _jd2ToJd2016Converter = new Jd2ToJd2016Converter();
private static readonly Jd3ToJd2016Converter _jd3ToJd2016Converter = new Jd3ToJd2016Converter();
private static readonly Jd4ToJd2016Converter _jd4ToJd2015Converter = new Jd4ToJd2016Converter();
private static readonly Jd5EngineToJd2016Converter _jd5EngineToJd2016Converter = new Jd5EngineToJd2016Converter();
private static readonly Jd5CatalogToJd2016Converter _jd5CatalogToJd2016Converter = new Jd5CatalogToJd2016Converter();
private static readonly JD2015ToJd2016Converter _jd2015ToJd2016Converter = new JD2015ToJd2016Converter();
private static readonly Jd2016Updater _jd2016Updater = new Jd2016Updater();
private static readonly Jd2016Downgrader _jd2016Downgrader = new Jd2016Downgrader();
private static readonly Jd2016ToJd5Downgrader _jd2016ToJd5Downgrader = new Jd2016ToJd5Downgrader();
#endregion
#region Constructor
private ConverterManager() {}
#endregion
#region Methods
public static Converter GetConverter(JDSongVersion srcVersion, JDSongVersion destination, JDFolderLayout srcFolderLayout = JDFolderLayout.Unknown)
{
if (srcVersion == JDSongVersion.JD1 && destination == JDSongVersion.JD2016)
return _jd1ToJd2016Converter;
if (srcVersion == JDSongVersion.JD2 && destination == JDSongVersion.JD2016)
return _jd2ToJd2016Converter;
if (srcVersion == JDSongVersion.JD3 && destination == JDSongVersion.JD2016)
return _jd3ToJd2016Converter;
if (srcVersion == JDSongVersion.JD4 && destination == JDSongVersion.JD2016)
return _jd4ToJd2015Converter;
if (srcVersion == JDSongVersion.JD5 && destination == JDSongVersion.JD2016)
{
if (srcFolderLayout == JDFolderLayout.Engine)
{
return _jd5EngineToJd2016Converter;
}
else if (srcFolderLayout == JDFolderLayout.CatalogProd)
{
return _jd5CatalogToJd2016Converter;
}
}
if (srcVersion == JDSongVersion.JD2015 && destination == JDSongVersion.JD2016)
return _jd2015ToJd2016Converter;
if (srcVersion == JDSongVersion.JD2016 && destination == JDSongVersion.JD2016)
return _jd2016Updater;
if (srcVersion == JDSongVersion.JD2016 && destination == JDSongVersion.JD2015)
return _jd2016Downgrader;
if (srcVersion == JDSongVersion.JD2016 && destination == JDSongVersion.JD5)
return _jd2016ToJd5Downgrader;
return null;
}
#endregion
}
}