Files
VisualSapfor/src/TestingSystem/Common/TestsDatabase.java

102 lines
4.2 KiB
Java
Raw Normal View History

package TestingSystem.Common;
import Common.Constants;
2023-09-17 22:13:42 +03:00
import Common.Database.SQLITE.SQLiteDatabase;
import GlobalData.Settings.SettingName;
import TestingSystem.Common.Group.GroupsDBTable;
import TestingSystem.Common.TSetting.TSetting;
import TestingSystem.Common.TSetting.TSettingsDBTable;
import TestingSystem.Common.Test.TestDBTable;
import TestingSystem.DVM.Configuration.ConfigurationDBTable;
import TestingSystem.DVM.DVMPackage.DVMPackage;
import TestingSystem.DVM.DVMPackage.DVMPackageDBTable;
import TestingSystem.DVM.TasksPackage.TasksPackageState;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable;
import TestingSystem.SAPFOR.ServerSapfor.ServerSapforsDBTable;
import Visual_DVM_2021.Passes.PassCode_2021;
2023-09-17 22:13:42 +03:00
import java.nio.file.Paths;
public class TestsDatabase extends SQLiteDatabase {
2023-12-11 02:00:28 +03:00
public TSettingsDBTable settings; //todo может быть перенести в properties. пользователю ни к чему это скачивать.
///--
2023-09-17 22:13:42 +03:00
public ConfigurationDBTable configurations;
public TestDBTable tests;
public GroupsDBTable groups;
public DVMPackageDBTable dvmPackages;
2023-09-17 22:13:42 +03:00
//--
public SapforConfigurationDBTable sapforConfigurations;
public SapforConfigurationCommandsDBTable sapforConfigurationCommands;
//----
public ServerSapforsDBTable serverSapfors;
2023-09-17 22:13:42 +03:00
public TestsDatabase() {
super(Paths.get(System.getProperty("user.dir"), "Data", Constants.tests_db_name + ".sqlite").toFile());
2023-09-17 22:13:42 +03:00
}
@Override
protected void initAllTables() throws Exception {
addTable(configurations = new ConfigurationDBTable());
addTable(groups = new GroupsDBTable());
addTable(tests = new TestDBTable());
addTable(dvmPackages = new DVMPackageDBTable());
2023-09-17 22:13:42 +03:00
addTable(settings = new TSettingsDBTable());
//-
addTable(sapforConfigurations = new SapforConfigurationDBTable());
addTable(sapforConfigurationCommands = new SapforConfigurationCommandsDBTable());
addTable(serverSapfors = new ServerSapforsDBTable());
2023-09-17 22:13:42 +03:00
}
@Override
public void Init() throws Exception {
if (!settings.containsKey(SettingName.DVMPackageMaxId))
Insert(new TSetting(SettingName.DVMPackageMaxId, 0));
//-
if (!settings.containsKey(SettingName.SAPFORPackageId))
Insert(new TSetting(SettingName.SAPFORPackageId, 0));
//-
2023-09-17 22:13:42 +03:00
if (!settings.containsKey(SettingName.TaskMaxId))
Insert(new TSetting(SettingName.TaskMaxId, 0));
//-
2023-09-17 22:13:42 +03:00
if (!settings.containsKey(SettingName.SapforTaskMaxId))
Insert(new TSetting(SettingName.SapforTaskMaxId, 0));
}
@Override
public PassCode_2021 getSynchronizePassCode() {
return PassCode_2021.SynchronizeTests;
}
public long IncKey(SettingName settingName) throws Exception {
TSetting setting = settings.get(settingName);
2023-09-17 22:13:42 +03:00
long res = setting.value;
setting.value++;
Update(setting);
return res;
}
public DVMPackage getFirstActiveDVMPackage() {
DVMPackage first_active = null;
DVMPackage first_queued = null;
if (!dvmPackages.Data.isEmpty()) {
for (DVMPackage p : dvmPackages.Data.values()) {
switch (p.state) {
case Done:
case Aborted:
break;
case Queued:
if (first_queued == null) first_queued = p;
break;
default:
if (first_active == null) first_active = p; //это и будет первый активный.
break;
}
}
if (first_active != null) return first_active;
if (first_queued != null) {
first_queued.state = TasksPackageState.TestsSynchronize;
try {
Update(first_queued);
} catch (Exception ex) {
ex.printStackTrace();
}
}
return first_queued;
}
return null;
}
2023-09-17 22:13:42 +03:00
}