datasource-min.js revision fde564a2cb44f0d31d9eb8e59bac8c457f7d8ca6
YUI.add("datasource-base",function(C){C.namespace("DataSource");var A=C.Lang,B=function(){B.superclass.constructor.apply(this,arguments);};C.mix(B,{NAME:"DataSource",ATTRS:{source:{value:null}},_tId:0,issueCallback:function(E){if(E.callback){var F=E.callback.scope||window,D=(E.error&&E.callback.failure)||E.callback.success;if(D){D.apply(F,[E]);}}}});C.extend(B,C.Base,{_queue:null,initializer:function(){this._queue={interval:null,conn:null,requests:[]};this._initEvents();},destructor:function(){},_initEvents:function(){this.publish("request",{defaultFn:this._handleRequest});this.publish("data",{defaultFn:this._handleData});this.publish("response",{defaultFn:this._handleResponse});},_handleRequest:function(E,F){var D=this.get("source");if(A.isUndefined(D)){F.error=true;}if(F.error){this.fire("error",null,F);}this.fire("data",null,C.mix(F,{data:D}));},_handleData:function(D,E){E.results=E.data;if(!E.results){E.results=[];}if(!E.meta){E.meta={};}this.fire("response",null,E);},_handleResponse:function(D,E){B.issueCallback(E);},sendRequest:function(D,F){var E=B._tId++;this.fire("request",null,{tId:E,request:D,callback:F});return E;}});C.DataSource=B;},"@VERSION@",{requires:["base"]});YUI.add("datasource-xhr",function(C){var A=C.Lang,B=function(){B.superclass.constructor.apply(this,arguments);};C.mix(B,{NAME:"DataSource.XHR",ATTRS:{io:{value:C.io}}});C.extend(B,C.DataSource,{_handleRequest:function(F,G){var E=this.get("source"),D={on:{success:function(J,H,I){this.fire("data",null,C.mix(I,{data:H}));},failure:function(J,H,I){I.error=true;this.fire("error",null,C.mix(I,{data:H}));this.fire("data",null,C.mix(I,{data:H}));}},context:this,arguments:{tId:G.tId,request:G.request,callback:G.callback}};this.get("io")(E,D);return G.tId;}});C.DataSource.XHR=B;},"@VERSION@",{requires:["datasource-base"]});YUI.add("datasource-cache",function(D){var C=D.Lang,B=D.DataSource,A=function(){};A.ATTRS={cache:{value:null,validator:function(E){return((E instanceof D.Cache)||(E===null));},set:function(E){this.on("request",this._beforeRequest);this.on("response",this._beforeResponse);}}};A.prototype={_beforeRequest:function(F,G){var E=(this.get("cache")&&this.get("cache").retrieve(G.request,G.callback))||null;if(E&&E.response){F.stopImmediatePropagation();this.fire("response",null,D.mix(G,E.response));}},_beforeResponse:function(E,F){if(this.get("cache")){this.get("cache").add(F.request,F,(F.callback&&F.callback.argument));}}};D.Base.build(B,[A],{dynamic:false});},"@VERSION@",{requires:["datasource-base"]});YUI.add("datasource-dataparser",function(D){var C=D.Lang,B=D.DataSource,A=function(){};A.ATTRS={parser:{value:null,validator:function(E){return((E instanceof D.DataParser.Base)||(E===null));}}};A.prototype={_handleData:function(F,G){var E=(this.get("parser")&&this.get("parser").parse(G.data));if(!E){E={meta:{},results:G.data};}this.fire("response",null,D.mix(G,E));}};D.Base.build(B,[A],{dynamic:false});},"@VERSION@",{requires:["datasource","dataparser"]});YUI.add("datasource-polling",function(D){var B=D.Lang,A=D.DataSource,C=function(){};C.prototype={_intervals:null,setInterval:function(G,F,I){if(B.isNumber(G)&&(G>=0)){var E=this,H=setInterval(function(){E.sendRequest(F,I);},G);if(!this._intervals){this._intervals=[];}this._intervals.push(H);return H;}else{}},clearInterval:function(G){var F=this._intervals||[],E=F.length-1;for(;E>-1;E--){if(F[E]===G){F.splice(E,1);clearInterval(G);}}}};D.Base.build(A,[C],{dynamic:false});},"@VERSION@",{requires:["datasource-base"]});YUI.add("datasource",function(A){},"@VERSION@",{use:["datasource-base","datasource-xhr","datasource-cache","datasource-dataparser","datasource-polling"]});