package TestingSystem.SAPFOR.SapforPackage; import Common.Constants; import Common.Current; import Common.Database.DBObject; import Common.Global; import Common.Utils.Utils; import GlobalData.Account.Account; import TestingSystem.Common.TasksPackageState; import TestingSystem.Common.TestingPackage.TestingPackage; import TestingSystem.SAPFOR.Json.SapforPackage_json; import TestingSystem.SAPFOR.Json.SapforTestingSet_json; import TestingSystem.SAPFOR.SapforTask.SapforTask; import TestingSystem.SAPFOR.ServerSapfor.ServerSapfor; import java.io.File; import java.util.Vector; public class SapforPackage extends TestingPackage { public int sapforId = Constants.Nan; // так как сапфор на машине. public SapforPackage() { } public SapforPackage(SapforPackage sapforPackage) { SynchronizeFields(sapforPackage); } public SapforPackage(Account account, ServerSapfor serverSapfor, int kernels_in) { id = Constants.Nan; //- sender_name = account.name; sender_address = account.email; //- sapforId = serverSapfor.id; //- drv = serverSapfor.call_command; version = serverSapfor.version; kernels = kernels_in;//Global.properties.TestingKernels; needsEmail = Global.properties.EmailOnTestingProgress ? 1 : 0; ///------------------------------- package_json = new SapforPackage_json(); package_json.kernels = kernels; package_json.sapfor_drv = serverSapfor.call_command; //- state = TasksPackageState.Queued; //- } @Override public void SynchronizeFields(DBObject src) { super.SynchronizeFields(src); SapforPackage p = (SapforPackage) src; sapforId = p.sapforId; } @Override public Class getJsonClass() { return SapforPackage_json.class; } @Override public File getHomeDirectory() { return Global.SapforPackagesDirectory; } //-- public void init() throws Exception { for (SapforTask task : package_json.tasks) task.sapfortaskspackage_id = id; Utils.CheckAndCleanDirectory(getLocalWorkspace()); saveJson(); package_json = null; // объект больше не нужен. } //-проверка, какие задачи из набора, не пересекаются с уже имеющимися в пакете. public Vector getActualTestingSetTasks(SapforTestingSet_json testingSet) { Vector possible_tasks = testingSet.createTasks(); Vector keys = package_json.getTasksKeys(); Vector new_tasks = new Vector<>(); //---- for (SapforTask task : possible_tasks) { String key = task.getUniqueKey(); if (!keys.contains(key)) { keys.add(key); new_tasks.add(task); } } return new_tasks; } @Override public boolean isVisible() { return (!SapforPackageDBTable.filterMyOnly || Current.getAccount().email.equals(sender_address)) && (!SapforPackageDBTable.filterActive || state.isActive()) ; } }