out.printLog("");
out.printLog("Params: " + params);
out.printLog("");
final EntityMetric entityMetric = new EntityMetric();
dao.insert(entityMetric);
entityMetric.setParams(params);
entityMetric.setMatrix(matrix + "");
entityMetric.setLog(out.getLog().toString());
entityMetric.setClassServicesName(serviceClass.getName());
dao.edit(entityMetric);
final AbstractBichoMetricServices services = createMetricServiceInstance(params, matrix);
Thread process = new Thread(services) {
@Override
public void run() {
try {
if (!canceled) {
out.setCurrentProcess("Iniciando coleta dos dados para geração da metrica.");
super.run();
out.printLog(services.getNodes().size() + " Registros coletados!");
}
progress += fraction / 2;
out.printLog("");
if (!canceled) {
out.setCurrentProcess("Iniciando salvamento dos dados gerados.");
entityMetric.setNodes(services.getMetricNodes());
for (EntityMetricNode node : services.getMetricNodes()) {
node.setMetric(entityMetric);
}
entityMetric.setComplete(true);
dao.edit(entityMetric);
out.printLog("Salvamento dos dados concluído!");
}
message = "Geração da matriz finalizada.";
} catch (Exception ex) {
ex.printStackTrace();
StringWriter errors = new StringWriter();
ex.printStackTrace(new PrintWriter(errors));
message = "Geração da rede abortada, erro: " + errors.toString();
out.printLog(errors.toString());
fail = true;
} finally {
out.printLog("");
if (canceled) {
out.setCurrentProcess("Geração da matriz abortada pelo usuário.");
} else {
out.setCurrentProcess(message);
}
progress += fraction / 2;
initialized = false;
entityMetric.setLog(out.getLog().toString());
entityMetric.setStoped(new Date());
dao.edit(entityMetric);
params.clear();
System.gc();
}
}