Files
VisualSapfor/src/TestingSystem/Common/TestingPackage/TestingPackage.java
2024-09-14 00:18:27 +03:00

195 lines
6.9 KiB
Java

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<J> 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<DVMConfiguration> getConfigurations() {
Vector<DVMConfiguration> 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<Group> getGroups() {
Vector<Group> 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<Test> getTests() {
Vector<Test> 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<Configuration> configurations = getConfigurations();
System.out.println("+");
Vector<Group> groups = getGroups();
Vector<Test> tests = getTests();
Vector<String> 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<? extends Configuration> new_configurations) {
Vector<String> res = new Vector<>();
Vector<String> 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<Group> new_groups) {
Vector<String> res = new Vector<>();
Vector<String> 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<Test> new_tests) {
Vector<String> res = new Vector<>();
for (Test test : new_tests)
res.add(String.valueOf(test.id));
packedTests = String.join("\n", res);
testsCount = new_tests.size();
}
}