blob: 3bd2d42648ac3a8bbeedbfc692f9b2b99adfdfc2 [file] [log] [blame]
dojo.provide("dojo.data.CsvStore");
dojo.require("dojo.data.core.RemoteStore");
dojo.require("dojo.lang.assert");
dojo.declare("dojo.data.CsvStore",dojo.data.core.RemoteStore,{_setupQueryRequest:function(_1,_2){
var _3=this._serverQueryUrl?this._serverQueryUrl:"";
var _4=_1.query?_1.query:"";
_2.url=_3+_4;
_2.method="get";
},_resultToQueryData:function(_5){
var _6=_5;
var _7=this._getArrayOfArraysFromCsvFileContents(_6);
var _8=this._getArrayOfObjectsFromArrayOfArrays(_7);
var _9=this._getRemoteStoreDataFromArrayOfObjects(_8);
return _9;
},_setupSaveRequest:function(_a,_b){
},_getArrayOfArraysFromCsvFileContents:function(_c){
dojo.lang.assertType(_c,String);
var _d=new RegExp("\r\n|\n|\r");
var _e=new RegExp("^\\s+","g");
var _f=new RegExp("\\s+$","g");
var _10=new RegExp("\"\"","g");
var _11=[];
var _12=_c.split(_d);
for(var i in _12){
var _14=_12[i];
if(_14.length>0){
var _15=_14.split(",");
var j=0;
while(j<_15.length){
var _17=_15[j];
var _18=_17.replace(_e,"");
var _19=_18.replace(_f,"");
var _1a=_19.charAt(0);
var _1b=_19.charAt(_19.length-1);
var _1c=_19.charAt(_19.length-2);
var _1d=_19.charAt(_19.length-3);
if((_1a=="\"")&&((_1b!="\"")||((_1b=="\"")&&(_1c=="\"")&&(_1d!="\"")))){
if(j+1===_15.length){
return null;
}
var _1e=_15[j+1];
_15[j]=_18+","+_1e;
_15.splice(j+1,1);
}else{
if((_1a=="\"")&&(_1b=="\"")){
_19=_19.slice(1,(_19.length-1));
_19=_19.replace(_10,"\"");
}
_15[j]=_19;
j+=1;
}
}
_11.push(_15);
}
}
return _11;
},_getArrayOfObjectsFromArrayOfArrays:function(_1f){
dojo.lang.assertType(_1f,Array);
var _20=[];
if(_1f.length>1){
var _21=_1f[0];
for(var i=1;i<_1f.length;++i){
var row=_1f[i];
var _24={};
for(var j in row){
var _26=row[j];
var key=_21[j];
_24[key]=_26;
}
_20.push(_24);
}
}
return _20;
},_getRemoteStoreDataFromArrayOfObjects:function(_28){
dojo.lang.assertType(_28,Array);
var _29={};
for(var i=0;i<_28.length;++i){
var _2b=_28[i];
for(var key in _2b){
var _2d=_2b[key];
_2b[key]=[_2d];
}
_29[i]=_2b;
}
return _29;
},newItem:function(_2e,_2f){
dojo.unimplemented("dojo.data.CsvStore.newItem");
},deleteItem:function(_30){
dojo.unimplemented("dojo.data.CsvStore.deleteItem");
},setValues:function(_31,_32,_33){
dojo.unimplemented("dojo.data.CsvStore.setValues");
},set:function(_34,_35,_36){
dojo.unimplemented("dojo.data.CsvStore.set");
},unsetAttribute:function(_37,_38){
dojo.unimplemented("dojo.data.CsvStore.unsetAttribute");
},save:function(_39){
dojo.unimplemented("dojo.data.CsvStore.save");
},revert:function(){
dojo.unimplemented("dojo.data.CsvStore.revert");
},isDirty:function(_3a){
dojo.unimplemented("dojo.data.CsvStore.isDirty");
}});