package hu.u_szeged.nbo.server.plugins;
import hu.u_szeged.nbo.common.Result;
import hu.u_szeged.nbo.res_alloc.main.Solver;
import hu.u_szeged.nbo.server.NBOServer;
import hu.u_szeged.nbo.server.User;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
public class ResourceAllocationSolver extends NBOPlugin {
private static final String subDirectoryName = "resourceallocation";
public ResourceAllocationSolver(User user, String problemName, HashMap<String, String> inputFiles) {
super(user, problemName, inputFiles, subDirectoryName);
}
public void run() {
NBOServer.log("ResourceAllocationSolver STARTED for " +
user.getUserName() + "'s task: " + task + ".", 1);
Solver solver = new Solver();
solver.solve(this.task);
Result result = new Result(this.uniqueHash, this.problemName);
result.add(this.problemName, solver.getOutput());
try {
for (String filename: new String[] { "eredmeny.txt", "ertekeles.txt", "kimaradt_munkak.txt" }) {
String fileData;
//System.out.println(System.getProperty("user.dir") + this.pathOfTask + "/" + filename);
File file = new File(this.pathOfTask + "/" + filename);
char buffer[] = new char[(int)file.length()];
FileReader fileReader = new FileReader(file);
fileReader.read(buffer);
fileData = new String(buffer);
result.add(filename, fileData);
}
user.getLogs().put(this.uniqueHash, solver.getLog());
NBOServer.log("ResourceAllocationSolver FINISHED " +
user.getUserName()+"'s task: " + task + ".", 1);
}
catch (Exception e) {
NBOServer.log(e.toString(), 2);
}
finally {
this.fileHandler.close();
}
user.getNewResults().put(this.uniqueHash, result);
}
}