home *** CD-ROM | disk | FTP | other *** search
/ Computer Active 2010 August / CA08.iso / Multimedija / shufflr.air / ShufflrClient.swf / scripts / mx / resources / ResourceBundle.as < prev    next >
Encoding:
Text File  |  2010-06-23  |  4.3 KB  |  158 lines

  1. package mx.resources
  2. {
  3.    import flash.system.ApplicationDomain;
  4.    import mx.core.mx_internal;
  5.    import mx.utils.StringUtil;
  6.    
  7.    use namespace mx_internal;
  8.    
  9.    public class ResourceBundle implements IResourceBundle
  10.    {
  11.       mx_internal static var backupApplicationDomain:ApplicationDomain;
  12.       
  13.       mx_internal static var locale:String;
  14.       
  15.       mx_internal static const VERSION:String = "3.5.0.12683";
  16.       
  17.       mx_internal var _locale:String;
  18.       
  19.       private var _content:Object = {};
  20.       
  21.       mx_internal var _bundleName:String;
  22.       
  23.       public function ResourceBundle(param1:String = null, param2:String = null)
  24.       {
  25.          super();
  26.          mx_internal::_locale = param1;
  27.          mx_internal::_bundleName = param2;
  28.          _content = getContent();
  29.       }
  30.       
  31.       private static function getClassByName(param1:String, param2:ApplicationDomain) : Class
  32.       {
  33.          var _loc3_:Class = null;
  34.          if(param2.hasDefinition(param1))
  35.          {
  36.             _loc3_ = param2.getDefinition(param1) as Class;
  37.          }
  38.          return _loc3_;
  39.       }
  40.       
  41.       public static function getResourceBundle(param1:String, param2:ApplicationDomain = null) : ResourceBundle
  42.       {
  43.          var _loc3_:* = null;
  44.          var _loc4_:Class = null;
  45.          var _loc5_:Object = null;
  46.          var _loc6_:ResourceBundle = null;
  47.          if(!param2)
  48.          {
  49.             param2 = ApplicationDomain.currentDomain;
  50.          }
  51.          _loc3_ = mx_internal::locale + "$" + param1 + "_properties";
  52.          _loc4_ = getClassByName(_loc3_,param2);
  53.          if(!_loc4_)
  54.          {
  55.             _loc3_ = param1 + "_properties";
  56.             _loc4_ = getClassByName(_loc3_,param2);
  57.          }
  58.          if(!_loc4_)
  59.          {
  60.             _loc3_ = param1;
  61.             _loc4_ = getClassByName(_loc3_,param2);
  62.          }
  63.          if(!_loc4_ && Boolean(mx_internal::backupApplicationDomain))
  64.          {
  65.             _loc3_ = param1 + "_properties";
  66.             _loc4_ = getClassByName(_loc3_,mx_internal::backupApplicationDomain);
  67.             if(!_loc4_)
  68.             {
  69.                _loc3_ = param1;
  70.                _loc4_ = getClassByName(_loc3_,mx_internal::backupApplicationDomain);
  71.             }
  72.          }
  73.          if(_loc4_)
  74.          {
  75.             _loc5_ = new _loc4_();
  76.             if(_loc5_ is ResourceBundle)
  77.             {
  78.                return ResourceBundle(_loc5_);
  79.             }
  80.          }
  81.          throw new Error("Could not find resource bundle " + param1);
  82.       }
  83.       
  84.       protected function getContent() : Object
  85.       {
  86.          return {};
  87.       }
  88.       
  89.       public function getString(param1:String) : String
  90.       {
  91.          return String(_getObject(param1));
  92.       }
  93.       
  94.       public function get content() : Object
  95.       {
  96.          return _content;
  97.       }
  98.       
  99.       public function getBoolean(param1:String, param2:Boolean = true) : Boolean
  100.       {
  101.          var _loc3_:String = _getObject(param1).toLowerCase();
  102.          if(_loc3_ == "false")
  103.          {
  104.             return false;
  105.          }
  106.          if(_loc3_ == "true")
  107.          {
  108.             return true;
  109.          }
  110.          return param2;
  111.       }
  112.       
  113.       public function getStringArray(param1:String) : Array
  114.       {
  115.          var _loc2_:Array = _getObject(param1).split(",");
  116.          var _loc3_:int = int(_loc2_.length);
  117.          var _loc4_:int = 0;
  118.          while(_loc4_ < _loc3_)
  119.          {
  120.             _loc2_[_loc4_] = StringUtil.trim(_loc2_[_loc4_]);
  121.             _loc4_++;
  122.          }
  123.          return _loc2_;
  124.       }
  125.       
  126.       public function getObject(param1:String) : Object
  127.       {
  128.          return _getObject(param1);
  129.       }
  130.       
  131.       private function _getObject(param1:String) : Object
  132.       {
  133.          var _loc2_:Object = content[param1];
  134.          if(!_loc2_)
  135.          {
  136.             throw new Error("Key " + param1 + " was not found in resource bundle " + bundleName);
  137.          }
  138.          return _loc2_;
  139.       }
  140.       
  141.       public function get locale() : String
  142.       {
  143.          return mx_internal::_locale;
  144.       }
  145.       
  146.       public function get bundleName() : String
  147.       {
  148.          return mx_internal::_bundleName;
  149.       }
  150.       
  151.       public function getNumber(param1:String) : Number
  152.       {
  153.          return Number(_getObject(param1));
  154.       }
  155.    }
  156. }
  157.  
  158.