package core;
import java.io.IOException;
import utils.Files;
import implementations.cassandraDB;
import implementations.hbaseDB;
import implementations.mongoDB;
import implementations.riakDB;
import implementations.scalarisDB;
import implementations.terrastoreDB;
import implementations.voldermortDB;
public class verifyAndCorrect {
/**
* @param args
*/
public static void main(String[] args) {
String dbType = args[0];
int dbTypeI;
if(dbType.equals("cassandra")) dbTypeI = 0;
else if(dbType.equals("scalaris")) dbTypeI = 1;
else if(dbType.equals("voldemort")) dbTypeI = 2;
else if(dbType.equals("terrastore")) dbTypeI = 3;
else if(dbType.equals("riak")) dbTypeI = 4;
else if(dbType.equals("mongodb")) dbTypeI = 5;
else if(dbType.equals("hbase")) dbTypeI = 6;
else dbTypeI = -1;
String basePath = args[1];
int numberOfDocuments = Integer.decode(args[2]);
int startID = Integer.decode(args[3]);
String nodeAdress = args[4];
BenchDB db;
switch(dbTypeI){
case 0:
db = new cassandraDB();
break;
case 1:
db = new scalarisDB();
break;
case 2:
db = new voldermortDB();
break;
case 3:
db = new terrastoreDB();
break;
case 4:
db = new riakDB();
break;
case 5:
db = new mongoDB();
break;
case 6:
db = new hbaseDB();
break;
default:
db = new cassandraDB();
break;
}
int retCon = db.connectNode(nodeAdress);
System.out.println("connection returned value : "+retCon);
if(retCon > 0){
for(int i=1+startID;i<=numberOfDocuments;i++){
String xml="";
try {
xml = Files.readFileAsString(basePath+String.valueOf(i));
} catch (IOException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
try{
String ret = db.readDB(String.valueOf(i));
if(ret == null){
throw new Exception();
}
db.updateDB(String.valueOf(i), xml);
}catch(Exception e){
db.writeDB(String.valueOf(i), xml);
System.out.println("Corrected ID : "+i);
}
if(i%200 == 0){
System.out.println(i+" verifications done");
}
}
}
}
}