home *** CD-ROM | disk | FTP | other *** search
- package mx.rpc.xml
- {
- import flash.utils.Proxy;
- import flash.utils.flash_proxy;
- import flash.utils.getQualifiedClassName;
- import mx.utils.ObjectProxy;
- import mx.utils.ObjectUtil;
- import mx.utils.object_proxy;
-
- use namespace flash_proxy;
- use namespace object_proxy;
-
- public dynamic class ContentProxy extends Proxy
- {
- private var _isSimple:Boolean = true;
-
- private var _content:*;
-
- private var _propertyList:Array;
-
- private var _makeObjectsBindable:Boolean;
-
- public function ContentProxy(param1:* = undefined, param2:Boolean = false, param3:Boolean = true)
- {
- super();
- object_proxy::content = param1;
- object_proxy::makeObjectsBindable = param2;
- object_proxy::isSimple = param3;
- }
-
- override flash_proxy function deleteProperty(param1:*) : Boolean
- {
- var _loc2_:* = false;
- var _loc3_:Object = null;
- if(!_isSimple && _content != null)
- {
- _loc3_ = _content[param1];
- _loc2_ = delete _content[param1];
- }
- return _loc2_;
- }
-
- object_proxy function set makeObjectsBindable(param1:Boolean) : void
- {
- _makeObjectsBindable = param1;
- if(param1 && !_isSimple && !(_content is ObjectProxy))
- {
- _content = new ObjectProxy(_content);
- }
- }
-
- override flash_proxy function nextValue(param1:int) : *
- {
- if(!_isSimple && _content != null)
- {
- return _content[_propertyList[param1 - 1]];
- }
- return undefined;
- }
-
- override flash_proxy function getProperty(param1:*) : *
- {
- if(_content != null)
- {
- return _content[param1];
- }
- return undefined;
- }
-
- override flash_proxy function hasProperty(param1:*) : Boolean
- {
- var _loc2_:* = false;
- if(_content != null)
- {
- _loc2_ = param1 in _content;
- }
- return _loc2_;
- }
-
- object_proxy function setupPropertyList() : void
- {
- var _loc1_:String = null;
- if(getQualifiedClassName(_content) == "Object")
- {
- _propertyList = [];
- for(_loc1_ in _content)
- {
- _propertyList.push(_loc1_);
- }
- }
- else
- {
- _propertyList = ObjectUtil.getClassInfo(_content,null,{
- "includeReadOnly":false,
- "uris":["*"]
- }).properties;
- }
- }
-
- object_proxy function set content(param1:*) : void
- {
- if(param1 is ContentProxy)
- {
- param1 = ContentProxy(param1).object_proxy::content;
- }
- _content = param1;
- }
-
- override flash_proxy function nextNameIndex(param1:int) : int
- {
- if(param1 == 0)
- {
- object_proxy::setupPropertyList();
- }
- if(param1 < _propertyList.length)
- {
- return param1 + 1;
- }
- return 0;
- }
-
- override flash_proxy function setProperty(param1:*, param2:*) : void
- {
- var _loc3_:* = undefined;
- if(_isSimple)
- {
- _loc3_ = _content;
- if(_loc3_ !== param2)
- {
- _content = param2;
- }
- }
- else
- {
- if(_content == null)
- {
- _content = object_proxy::createObject();
- }
- _loc3_ = _content[param1];
- if(_loc3_ !== param2)
- {
- _content[param1] = param2;
- }
- }
- }
-
- object_proxy function set isSimple(param1:Boolean) : void
- {
- _isSimple = param1;
- }
-
- object_proxy function get content() : *
- {
- return _content;
- }
-
- override flash_proxy function callProperty(param1:*, ... rest) : *
- {
- if(_content != null)
- {
- return _content[param1].apply(_content,rest);
- }
- return undefined;
- }
-
- object_proxy function createObject() : *
- {
- if(object_proxy::makeObjectsBindable)
- {
- return new ObjectProxy();
- }
- return {};
- }
-
- object_proxy function get isSimple() : Boolean
- {
- return _isSimple;
- }
-
- object_proxy function get makeObjectsBindable() : Boolean
- {
- return _makeObjectsBindable;
- }
-
- override flash_proxy function nextName(param1:int) : String
- {
- return _propertyList[param1 - 1];
- }
- }
- }
-
-