public ObjectDatabaseForFileResult(XmlFileInfo file, Phx.ProtoDataObjectDatabase db, int objectKind)
 {
     File               = file;
     Database           = db;
     SpecificObjectKind = objectKind;
 }
        protected virtual KeyValuePair <Phx.ProtoDataObjectDatabase, int> GetObjectDatabaseForFile(XmlFileInfo file)
        {
            Phx.ProtoDataObjectDatabase db = null;
            int specificObjectKind         = TypeExtensions.kNone;

            if (file == Phx.BGameData.kXmlFileInfo)
            {
                db = Database.GameData.ObjectDatabase;
                specificObjectKind = PhxUtil.kObjectKindNone;
            }
            else if (file == Phx.HPBarData.kXmlFileInfo)
            {
                db = Database.HPBars.ObjectDatabase;
                specificObjectKind = PhxUtil.kObjectKindNone;
            }
            else if (file == Phx.BAbility.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.Ability;
            }
            else if (file == Phx.BCiv.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.Civ;
            }
            else if (file == Phx.BDamageType.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.DamageType;
            }
            else if (file == Phx.BProtoImpactEffect.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.ImpactEffect;
            }
            else if (file == Phx.BLeader.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.Leader;
            }
            else if (
                file == Phx.BProtoObject.kXmlFileInfo ||
                file == Phx.BProtoObject.kXmlFileInfoUpdate)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.Object;
            }
            else if (file == Phx.BDatabaseBase.kObjectTypesXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.ObjectType;
            }
            else if (file == Phx.BProtoPower.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.Power;
            }
            else if (
                file == Phx.BProtoSquad.kXmlFileInfo ||
                file == Phx.BProtoSquad.kXmlFileInfoUpdate)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.Squad;
            }
            else if (file.Directory == GameDirectory.Tactics)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.Tactic;
            }
            else if (
                file == Phx.BProtoTech.kXmlFileInfo ||
                file == Phx.BProtoTech.kXmlFileInfoUpdate)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.Tech;
            }
            else if (file == Phx.TerrainTileType.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.TerrainTileType;
            }
            else if (file == Phx.BUserClass.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.UserClass;
            }
            else if (file == Phx.BWeaponType.kXmlFileInfo)
            {
                db = Database.ObjectDatabase;
                specificObjectKind = (int)Phx.DatabaseObjectKind.WeaponType;
            }
            else if (
                file.Directory == GameDirectory.AbilityScripts ||
                file.Directory == GameDirectory.PowerScripts ||
                file.Directory == GameDirectory.TriggerScripts)
            {
                throw new NotImplementedException(file.ToString());
            }

            return(new KeyValuePair <Phx.ProtoDataObjectDatabase, int>(db, specificObjectKind));
        }