67 lines
3.2 KiB
C#
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
|
|
}
|
|
}
|