code: function(oRequest, oCallback, oCaller) {
      var tId = DS._nTransactionId++;
      this.fireEvent("requestEvent", {tId:tId,request:oRequest,callback:oCallback,caller:oCaller});
  
      // Pass the request in as a parameter and
      // forward the return value to the handler
      
      
      var oRawResponse = (this.scope) ? this.liveData.call(this.scope, oRequest, this) : this.liveData(oRequest);
      
      // Try to sniff data type if it has not been defined
      if(this.responseType === DS.TYPE_UNKNOWN) {
          if(YAHOO.lang.isArray(oRawResponse)) { // array
              this.responseType = DS.TYPE_JSARRAY;
          }
           // xml
          else if(oRawResponse && oRawResponse.nodeType && oRawResponse.nodeType == 9) {
              this.responseType = DS.TYPE_XML;
          }
          else if(oRawResponse && oRawResponse.nodeName && (oRawResponse.nodeName.toLowerCase() == "table")) { // table
              this.responseType = DS.TYPE_HTMLTABLE;
          }    
          else if(YAHOO.lang.isObject(oRawResponse)) { // json
              this.responseType = DS.TYPE_JSON;
          }
          else if(YAHOO.lang.isString(oRawResponse)) { // text
              this.responseType = DS.TYPE_TEXT;
          }
      }
  
      this.handleResponse(oRequest, oRawResponse, oCallback, oCaller, tId);
      return tId;
  }
docs: ///////////////////////////////////////////////////////////////////////////  FunctionDataSource public methods  /////////////////////////////////////////////////////////////////////////// 
  Overriding method passes query to a function. The returned response is then
  forwarded to the handleResponse function.
  
  @method makeConnection
  @param oRequest {Object} Request object.
  @param oCallback {Object} Callback object literal.
  @param oCaller {Object} (deprecated) Use oCallback.scope.
  @return {Number} Transaction ID.