package SapforTestingSystem.SapforTasksPackage; import Common.Constants; import Common.Database.DBObject; import Common.Database.nDBObject; import Common.Global; import Common.Utils.Utils; import SapforTestingSystem.Json.SapforTasksResults_json; import SapforTestingSystem.SapforTask.SapforTask; import TestingSystem.TasksPackage.TasksPackageState; import com.sun.org.glassfish.gmbal.Description; import java.io.File; import java.nio.file.Paths; import java.util.Comparator; public class SapforTasksPackage extends nDBObject { @Description("DEFAULT ''") public String testsNames = "";//имена тестов через ; для отображения //--- public int sapforId = Constants.Nan; public String sapfor_version = "?"; //тестируемая версия SAPFOR public long sapfor_build_date = 0; public String sapfor_drv = ""; public String sapfor_process_name = ""; //--- public String workspace = ""; //домашняя папка //--- public int tasksCount = 0; //Общее число задач //--- public int needsEmail = 0; public long StartDate = 0; //дата начала выполнения public long ChangeDate = 0;//дата окончания выполнения //- public int kernels = 1; //количество потоков. @Description("DEFAULT 'TestsSynchronize'") public TasksPackageState state = TasksPackageState.TestsSynchronize; @Description("DEFAULT ''") public String testsIds = ""; @Description("DEFAULT ''") public String configurationsIds = ""; @Description("DEFAULT ''") public String summary = ""; @Override public void SynchronizeFields(DBObject src) { super.SynchronizeFields(src); SapforTasksPackage p = (SapforTasksPackage) src; sapforId = p.sapforId; testsNames = p.testsNames; sapfor_version = p.sapfor_version; sapfor_build_date = p.sapfor_build_date; workspace = p.workspace; tasksCount = p.tasksCount; StartDate = p.StartDate; ChangeDate = p.ChangeDate; kernels = p.kernels; sapfor_process_name = p.sapfor_process_name; state = p.state; needsEmail = p.needsEmail; } //--- @Description("IGNORE") public SapforTasksResults_json results = null; ///--- public File getArchive() { return new File(Global.SapforPackagesDirectory, id + ".zip"); } public File getLocalWorkspace() { return new File(Global.SapforPackagesDirectory, id); } public File getLoadedSign() { return Paths.get(Global.SapforPackagesDirectory.getAbsolutePath(), id, Constants.LOADED).toFile(); } public boolean isLoaded() { return getLoadedSign().exists(); } public void readResults() { File json_file = new File(getLocalWorkspace(), Constants.results_json); results = null; try { results = (SapforTasksResults_json) Utils.jsonFromFile(json_file, SapforTasksResults_json.class); //---- results.tasks.sort(Comparator.comparing(SapforTask::getUniqueKey)); for (SapforTask task : results.tasks) results.allTasks.put(task.getUniqueKey(), task); //--- results.SortTasks(); //по состояниям конфигурациям и группам //--- results.buildTree(this); //--- } catch (Exception ex) { ex.printStackTrace(); } } }