﻿using System.Collections.Generic;

namespace JLGames.RocketDriver.Actions.i18n
{
    public static class I18NManagerShared
    {
        /// <summary>
        /// Default manager
        /// 默认管理器
        /// </summary>
        public static II18NManager Manager { get; } = new I18NManager();

        /// <summary>
        /// Default register
        /// 默认注册表
        /// </summary>
        public static I18NRegister Register => Manager.Register;

        private static readonly Dictionary<string, II18NManager> m_Managers = new Dictionary<string, II18NManager>();

        /// <summary>
        /// Get a manager instance
        /// 取得一个管理器实例
        /// </summary>
        /// <param name="key"></param>
        /// <param name="autoNew"></param>
        /// <returns></returns>
        public static II18NManager GetManager(string key, bool autoNew = true)
        {
            if (string.IsNullOrEmpty(key)) return null;
            if (m_Managers.ContainsKey(key)) return m_Managers[key];
            if (!autoNew) return null;
            var m = new I18NManager();
            m_Managers[key] = m;
            return m;
        }

        /// <summary>
        /// Remove a manager instance.
        /// 删除管理器实例
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static II18NManager RemoveManager(string key)
        {
            if (!m_Managers.ContainsKey(key)) return null;
            var rs = m_Managers[key];
            m_Managers.Remove(key);
            return rs;
        }
    }
}