pdbench/census/DataNoise/src/Main.java

107 lines
3.0 KiB
Java

import java.sql.SQLException;
import java.util.ArrayList;
/**
*
*/
/**
* @author Lublena
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
if (args.length != 7)
{
System.err.println("Please specify table names and settings file!");
return;
}
String templateName = args[0];
String mappingName = args[1];
String compName = args[2];
int relSize = (new Integer(args[3])).intValue();
int arity = (new Integer(args[4])).intValue();
double density = (new Double(args[5])).doubleValue();
String fileName = args[6];
// TODO: check whether arguments are valid values
Settings settings = new Settings(fileName);
//System.out.print("Loading settings...");
if (settings.loadSettings() == false)
{
System.err.println("The specified file could not be loaded.");
return;
}
//System.out.println("done");
//System.out.print("Initializing database connection...");
// Init database connection
// DBConnector db = new DBConnector(settings.getDBSetting("dbname"),
// settings.getDBSetting("username"), settings.getDBSetting("password"),
// settings.getDBSetting("templaterel"), settings.getDBSetting("mappingrel"),
// settings.getDBSetting("comprel"),
// settings.getDBSetting("worldrel"));
DBConnector db = new DBConnector(settings.getDBSetting("dbname"),
settings.getDBSetting("username"), settings.getDBSetting("password"),
templateName, mappingName,
compName,
settings.getDBSetting("worldrel"));
if (db == null)
{
System.err.println("failed");
return;
}
//System.out.print("Retrieving relation size...");
// int relSize;
// if (settings.getDBSetting("size") != null)
// {
// // Size available in settings file
// relSize = (new Integer(settings.getDBSetting("size"))).intValue();
// }
// else
// {
// relSize = db.getTemplateRelSize();
// }
//
//System.out.println("done");
int maxHolesPerTuple = (new Integer(settings.getNoiseSetting("maxholespertuple"))).intValue();
double avgHolesPerTuple = 1 + (maxHolesPerTuple - 1)/ 2.0;
int tuplesWithHolesCount = (int) (relSize * density * arity / avgHolesPerTuple);
int maxHoleSize = (new Integer(settings.getNoiseSetting("maxholesize"))).intValue();
//System.out.print("Introducing holes...");
try
{
ArrayList holes = NoiseGenerator.generateNoise(db, settings.getVars(), relSize,
tuplesWithHolesCount, maxHolesPerTuple, maxHoleSize);
//ArrayList holes = NoiseGenerator.generateNoiseUniform(settings.getVars(), relSize,
// holeCount, maxHoleSize);
}
catch(SQLException e)
{
System.err.println("Error occurred while introducing noise:");
e.printStackTrace();
}
//System.out.println("done");
db.closeConnection();
//long end = System.currentTimeMillis();
//System.out.println("Total runningtime: " + (end - start) / 1000 + " seconds.");
// System.out.println("Generated " + db.worldCount + " worlds.");
}
}