package net.ion.craken.node.problem.store;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import net.ion.craken.node.TransactionJob;
import net.ion.craken.node.WriteNode;
import net.ion.craken.node.WriteSession;
import net.ion.radon.util.csv.CsvReader;
public class SampleWriteJob implements TransactionJob<Void> {
private int max = 0 ;
private String filePath;
public SampleWriteJob(int max){
this(max, "C:/temp/freebase-datadump-tsv/data/medicine/drug_label_section.tsv") ;
}
public SampleWriteJob(int max, String filePath){
this.max = max ;
this.filePath = filePath ;
}
@Override
public Void handle(WriteSession wsession) throws Exception {
File file = new File(filePath) ;
CsvReader reader = new CsvReader(new BufferedReader(new FileReader(file)));
reader.setFieldDelimiter('\t') ;
String[] headers = reader.readLine();
String[] line = reader.readLine() ;
wsession.iwconfig().keyword("id") ;
while(line != null && line.length > 0 && max-- > 0 ){
// if (headers.length != line.length ) continue ;
WriteNode wnode = wsession.pathBy("/" + max);
for (int ii = 0, last = headers.length; ii < last ; ii++) {
if (line.length > ii) wnode.property(headers[ii], line[ii]) ;
}
line = reader.readLine() ;
if ((max % 5000) == 0) {
wsession.continueUnit() ;
}
}
reader.close() ;
return null;
}
}