package TestingSystem.Common.TestingPackage; import Common.Constants; import Common.Database.DBObject; import Common.Database.riDBObject; import Common.Global; import Common.Utils.Utils; import TestingSystem.Common.Configuration; import TestingSystem.Common.Group.Group; import TestingSystem.Common.TasksPackageState; import TestingSystem.Common.Test.Test; import TestingSystem.DVM.Configuration.DVMConfiguration; import com.sun.org.glassfish.gmbal.Description; import java.io.File; import java.util.Vector; public abstract class TestingPackage extends riDBObject { public String PID = ""; public int tasksCount = 0; //Общее число задач //-- public int kernels = 1; public int needsEmail = 0; //--- public String version = ""; //версия тестируемого объекта public String drv = ""; //пусть к исполняемому файлы тестируемого объекта //-- public int progress = 0; //прогресс выполнения public long StartDate = 0; public long ChangeDate = 0; @Description("DEFAULT 0") public int connectionErrosCount = 0; //-- @Description("DEFAULT ''") public String packedConfigurations = ""; @Description("DEFAULT ''") public String packedGroups = ""; @Description("DEFAULT ''") public String packedTests = ""; //---- @Description("DEFAULT ''") public String configurationsNames = ""; @Description("DEFAULT ''") public String groupsNames = ""; //---- @Description("DEFAULT 0") public int configurationsCount = 0; @Description("DEFAULT 0") public int groupsCount = 0; @Description("DEFAULT 0") public int testsCount = 0; //-- public TasksPackageState state = TasksPackageState.Draft; //-- @Override public void SynchronizeFields(DBObject src) { super.SynchronizeFields(src); TestingPackage tp = (TestingPackage) src; //-- tasksCount = tp.tasksCount; needsEmail = tp.needsEmail; version = tp.version; drv = tp.drv; PID = tp.PID; kernels = tp.kernels; progress = tp.progress; StartDate = tp.StartDate; ChangeDate = tp.ChangeDate; connectionErrosCount = tp.connectionErrosCount; state = tp.state; //-- packedConfigurations = tp.packedConfigurations; packedGroups = tp.packedGroups; packedTests = tp.packedTests; //-- configurationsCount = tp.configurationsCount; groupsCount = tp.groupsCount; testsCount = tp.testsCount; //-- groupsNames = tp.groupsNames; configurationsNames = tp.configurationsNames; } public TestingPackage(TestingPackage p) { SynchronizeFields(p); } public TestingPackage() { } public File getLocalWorkspace() { return new File(getHomeDirectory(), String.valueOf(id)); } public boolean isLoaded() { return new File(getLocalWorkspace(), Constants.LOADED).exists(); } //------------------------ @Description("IGNORED") public J package_json = null; public abstract Class getJsonClass(); public abstract File getHomeDirectory(); public File getJsonFile() { return new File(getLocalWorkspace(), "package_json"); } public File getLoadedFile() { return new File(getLocalWorkspace(), Constants.LOADED); } public void saveJson() throws Exception { Utils.jsonToFile(package_json, getJsonFile()); } public void readJson() throws Exception { package_json = (J) Utils.jsonFromFile(getJsonFile(), getJsonClass()); } public void destructor() { package_json = null; } public Vector getConfigurations() { Vector res = new Vector<>(); for (int o_id : Utils.unpack(packedConfigurations)) if (Global.testingServer.db.dvm_configurations.containsKey(o_id)) res.add(Global.testingServer.db.dvm_configurations.get(o_id)); return res; } public Vector getGroups() { Vector res = new Vector<>(); for (int o_id : Utils.unpack(packedGroups)) if (Global.testingServer.db.groups.containsKey(o_id)) res.add(Global.testingServer.db.groups.get(o_id)); return res; } public Vector getTests() { Vector res = new Vector<>(); for (int o_id : Utils.unpack(packedTests)) if (Global.testingServer.db.tests.containsKey(o_id)) res.add(Global.testingServer.db.tests.get(o_id)); return res; } /* public void printCGT() { try { System.out.println("package="+id); Vector configurations = getConfigurations(); System.out.println("+"); Vector groups = getGroups(); Vector tests = getTests(); Vector res = new Vector<>(); res.add("конфигурации: " + configurations.size()); for (Configuration configuration : configurations) res.add(configuration.description); res.add("группы: " + groups.size()); for (Group group : groups) res.add(group.description); //-- res.add("тесты: " + tests.size()); for (Test test : tests) res.add(test.description); //-- res.add("-------"); System.out.println(String.join("\n", res)); } catch (Exception ex){ System.out.println("```"); ex.printStackTrace(); } } */ //------------------------------------------------------->>> public void saveConfigurations(Vector new_configurations) { Vector res = new Vector<>(); Vector names = new Vector<>(); for (Configuration configuration : new_configurations) { res.add(String.valueOf(configuration.id)); names.add(configuration.description); } packedConfigurations = String.join("\n", res); configurationsNames = String.join(";", names); configurationsCount = new_configurations.size(); } public void saveGroups(Vector new_groups) { Vector res = new Vector<>(); Vector names = new Vector<>(); for (Group group : new_groups) { res.add(String.valueOf(group.id)); names.add(group.description); } packedGroups = String.join("\n", res); groupsNames = String.join(";", names); groupsCount = new_groups.size(); } public void saveTests(Vector new_tests) { Vector res = new Vector<>(); for (Test test : new_tests) res.add(String.valueOf(test.id)); packedTests = String.join("\n", res); testsCount = new_tests.size(); } }