public static function GetRole()
 {
     if (self::$role > 0) {
         return self::$role;
     }
     switch (self::GetClassID()) {
         case CLASS_WARRIOR:
         case CLASS_ROGUE:
         case CLASS_DK:
             self::$role = ROLE_MELEE;
             return ROLE_MELEE;
         case CLASS_PALADIN:
         case CLASS_DRUID:
         case CLASS_SHAMAN:
             // Hybrid classes. Need to check active talent tree.
             foreach (self::$fullTalentData['specsData'] as $spec) {
                 if ($spec['active'] == 0) {
                     continue;
                 }
                 if ($spec['treeOne'] > $spec['treeTwo'] && $spec['treeOne'] > $spec['treeThree']) {
                     if (self::GetClassID() == CLASS_PALADIN) {
                         self::$role = ROLE_HEALER;
                         return self::$role;
                         // Paladin: Holy
                     } else {
                         self::$role = ROLE_CASTER;
                         return self::$role;
                         // Druid: Balance, Shaman: Elemental
                     }
                 } elseif ($spec['treeTwo'] > $spec['treeOne'] && $spec['treeTwo'] > $spec['treeThree']) {
                     if (self::GetClassID() == CLASS_PALADIN) {
                         self::$role = ROLE_TANK;
                         // Paladin: Protection
                     } else {
                         self::$role = ROLE_MELEE;
                         //Druid: Feral, Shaman: Enhancemenet
                     }
                     return self::$role;
                 } else {
                     if (self::GetClassID() == CLASS_PALADIN) {
                         self::$role = ROLE_MELEE;
                         return self::$role;
                         // Retribution
                     } else {
                         self::$role = ROLE_HEALER;
                         return self::$role;
                         // Shaman, Druid: Restoration
                     }
                 }
             }
             break;
         case CLASS_PRIEST:
             foreach (self::$fullTalentData['specsData'] as $spec) {
                 if ($spec['active'] == 1) {
                     if ($spec['treeThree'] > $spec['treeOne'] && $spec['treeThree'] > $spec['treeTwo']) {
                         self::$role = ROLE_CASTER;
                         return self::$role;
                     } else {
                         self::$role = ROLE_HEALER;
                         return self::$role;
                     }
                 }
             }
             break;
         case CLASS_MAGE:
         case CLASS_WARLOCK:
             self::$role = ROLE_CASTER;
             return self::$role;
             break;
         case CLASS_HUNTER:
             self::$role = ROLE_RANGED;
             return self::$role;
             break;
     }
 }