//>>built
define("dojox/wire/Wire",["dojo","dijit","dojox","dojo/require!dojox/wire/_base"],function(_1,_2,_3){_1.provide("dojox.wire.Wire");_1.require("dojox.wire._base");_1.declare("dojox.wire.Wire",null,{_wireClass:"dojox.wire.Wire",constructor:function(_4){_1.mixin(this,_4);if(this.converter){if(_1.isString(this.converter)){var _5=_1.getObject(this.converter);if(_1.isFunction(_5)){try{var _6=new _5();if(_6&&!_1.isFunction(_6["convert"])){this.converter={convert:_5};}else{this.converter=_6;}}catch(e){}}else{if(_1.isObject(_5)){if(_1.isFunction(_5["convert"])){this.converter=_5;}}}if(_1.isString(this.converter)){var _7=_3.wire._getClass(this.converter);if(_7){this.converter=new _7();}else{this.converter=undefined;}}}else{if(_1.isFunction(this.converter)){this.converter={convert:this.converter};}}}},getValue:function(_8){var _9=undefined;if(_3.wire.isWire(this.object)){_9=this.object.getValue(_8);}else{_9=(this.object||_8);}if(this.property){var _a=this.property.split(".");for(var i in _a){if(!_9){return _9;}_9=this._getPropertyValue(_9,_a[i]);}}var _b=undefined;if(this._getValue){_b=this._getValue(_9);}else{_b=_9;}if(_b){if(this.type){if(this.type=="string"){_b=_b.toString();}else{if(this.type=="number"){_b=parseInt(_b,10);}else{if(this.type=="boolean"){_b=(_b!="false");}else{if(this.type=="array"){if(!_1.isArray(_b)){_b=[_b];}}}}}}if(this.converter&&this.converter.convert){_b=this.converter.convert(_b,this);}}return _b;},setValue:function(_c,_d){var _e=undefined;if(_3.wire.isWire(this.object)){_e=this.object.getValue(_d);}else{_e=(this.object||_d);}var _f=undefined;var o;if(this.property){if(!_e){if(_3.wire.isWire(this.object)){_e={};this.object.setValue(_e,_d);}else{throw new Error(this._wireClass+".setValue(): invalid object");}}var _10=this.property.split(".");var _11=_10.length-1;for(var i=0;i<_11;i++){var p=_10[i];o=this._getPropertyValue(_e,p);if(!o){o={};this._setPropertyValue(_e,p,o);}_e=o;}_f=_10[_11];}if(this._setValue){if(_f){o=this._getPropertyValue(_e,_f);if(!o){o={};this._setPropertyValue(_e,_f,o);}_e=o;}var _12=this._setValue(_e,_c);if(!_e&&_12){if(_3.wire.isWire(this.object)){this.object.setValue(_12,_d);}else{throw new Error(this._wireClass+".setValue(): invalid object");}}}else{if(_f){this._setPropertyValue(_e,_f,_c);}else{if(_3.wire.isWire(this.object)){this.object.setValue(_c,_d);}else{throw new Error(this._wireClass+".setValue(): invalid property");}}}},_getPropertyValue:function(_13,_14){var _15=undefined;var i1=_14.indexOf("[");if(i1>=0){var i2=_14.indexOf("]");var _16=_14.substring(i1+1,i2);var _17=null;if(i1===0){_17=_13;}else{_14=_14.substring(0,i1);_17=this._getPropertyValue(_13,_14);if(_17&&!_1.isArray(_17)){_17=[_17];}}if(_17){_15=_17[_16];}}else{if(_13.getPropertyValue){_15=_13.getPropertyValue(_14);}else{var _18="get"+_14.charAt(0).toUpperCase()+_14.substring(1);if(this._useGet(_13)){_15=_13.get(_14);}else{if(this._useAttr(_13)){_15=_13.attr(_14);}else{if(_13[_18]){_15=_13[_18]();}else{_15=_13[_14];}}}}}return _15;},_setPropertyValue:function(_19,_1a,_1b){var i1=_1a.indexOf("[");if(i1>=0){var i2=_1a.indexOf("]");var _1c=_1a.substring(i1+1,i2);var _1d=null;if(i1===0){_1d=_19;}else{_1a=_1a.substring(0,i1);_1d=this._getPropertyValue(_19,_1a);if(!_1d){_1d=[];this._setPropertyValue(_19,_1a,_1d);}}_1d[_1c]=_1b;}else{if(_19.setPropertyValue){_19.setPropertyValue(_1a,_1b);}else{var _1e="set"+_1a.charAt(0).toUpperCase()+_1a.substring(1);if(this._useSet(_19)){_19.set(_1a,_1b);}else{if(this._useAttr(_19)){_19.attr(_1a,_1b);}else{if(_19[_1e]){_19[_1e](_1b);}else{_19[_1a]=_1b;}}}}}},_useGet:function(_1f){var _20=false;if(_1.isFunction(_1f.get)){_20=true;}return _20;},_useSet:function(_21){var _22=false;if(_1.isFunction(_21.set)){_22=true;}return _22;},_useAttr:function(_23){var _24=false;if(_1.isFunction(_23.attr)){_24=true;}return _24;}});});