
Ext.namespace("Ext.ux");
Ext.namespace("Ext.ux.data");

Ext.ux.data.nqBatchArrayReader = function(meta, recordType) {
    meta = meta || {};
    Ext.ux.data.nqBatchArrayReader.superclass.constructor.call(this, meta, recordType || meta.fields);
};


Ext.extend(Ext.ux.data.nqBatchArrayReader, Ext.data.ArrayReader, {
    readRecords : function(o){
        var sid = this.meta ? this.meta.id : null;
    	var recordType = this.recordType, fields = recordType.prototype.fields;
    	var batchId=null;
    	var EOF=false;
    	var records = [];
    	var root = o[0].split("|");
	    for(var i = 0; i < root.length; i++){
		    var n = root[i].split(",");
		    if(n[0]==""){
		    	//no records
		    	break;
		    }
		    if(n[0]=="MSGSWNQ_BNO"){
		    	try{
				    batchId=eval(n[1]);
			    }catch(e){}
			    break;
		    }
		    if(n[0]=="MSGSWNQ_EOF"){
		    	try{
				    EOF=true;
			    }catch(e){}
			    break;
		    }

	        var values = {};
	        var id = ((sid || sid === 0) && n[sid] !== undefined && n[sid] !== "" ? n[sid] : null);
	        for(var j = 0, jlen = fields.length; j < jlen; j++){
                var f = fields.items[j];
                var k = f.mapping !== undefined && f.mapping !== null ? f.mapping : j;
                var v = n[k] !== undefined ? n[k] : f.defaultValue;
                v = f.convert(v, n);
                values[f.name] = v;
            }
	        var record = new recordType(values, id);
	        record.json = n;
	        records[records.length] = record;
	    }
	    return {
	        records : records,
	        batchId:batchId,
	        EOF:EOF,
	        totalRecords : records.length
	    };
    }    

}); // end of extend
 
if(typeof(NQJSScriptsLoaded)=="number"){NQJSScriptsLoaded=NQJSScriptsLoaded+1;}

