package _VisualDVM.TestingSystem.Common.Configuration; import Common.CommonConstants; import Common.Database.Objects.DBObject; import Common.Database.Objects.riDBObject; import Common.Utils.TextLog; import Common.Utils.Utils_; import _VisualDVM.ServerObjectsCache.ConfigurationCache; import _VisualDVM.TestingSystem.Common.Group.Group; import _VisualDVM.TestingSystem.Common.Group.Json.GroupJson; import _VisualDVM.TestingSystem.Common.Group.Json.GroupsJson; import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsArrayJson; import _VisualDVM.TestingSystem.Common.Settings.Json.SettingsJson; import _VisualDVM.TestingSystem.Common.Settings.Settings; import _VisualDVM.TestingSystem.Common.Test.Json.TestJson; import _VisualDVM.TestingSystem.Common.Test.Json.TestsJson; import _VisualDVM.TestingSystem.Common.Test.Test; import com.sun.org.glassfish.gmbal.Description; import javax.swing.*; import java.util.LinkedHashMap; import java.util.List; import java.util.Vector; public class Configuration extends riDBObject { //конфигурация = данные для пакета. //группы //тесты //настройки тестируемого объекта //пакет = запуск конфигурация + тестируемый объект //--- public int maxtime = 60; @Description("DEFAULT 0") public int autoTesting = 0; @Description("DEFAULT 1") public int kernels = 1; //ядра //-- @Description("DEFAULT ''") public String packedGroupsJson = ""; @Description("DEFAULT ''") public String packedTestsJson = ""; @Description("DEFAULT ''") public String packedSettingsJson = ""; @Description("DEFAULT -1") public int ethalon_id = CommonConstants.Nan; //пакет-эталон //---- public String printAuto() { return autoTesting > 0 ? "Да" : "Нет"; } public String printEthalon() { return (ethalon_id == CommonConstants.Nan) ? "—" : String.valueOf(ethalon_id); } public void SwitchAuto() { autoTesting = (autoTesting == 0) ? 1 : 0; } public ImageIcon GetAutoIcon() { return Utils_.getIcon("/Common/icons/" + (autoTesting == 1 ? "RedPick" : "NotPick") + ".png"); } //-- public void saveGroupsAsJson(Vector groups) { packedGroupsJson = Utils_.gson.toJson(new GroupsJson(groups)); } public void saveTestsAsJson(Vector tests) { packedTestsJson = Utils_.gson.toJson(new TestsJson(tests)); } public void saveSettingsAsJson(Vector settings) { packedSettingsJson = Utils_.gson.toJson(new SettingsArrayJson(settings)); } //-- @Override public void SynchronizeFields(DBObject src) { super.SynchronizeFields(src); Configuration c = (Configuration) src; //-- ethalon_id = c.ethalon_id; maxtime = c.maxtime; autoTesting = c.autoTesting; kernels = c.kernels; //- packedGroupsJson = c.packedGroupsJson; packedTestsJson = c.packedTestsJson; packedSettingsJson = c.packedSettingsJson; } //- для автоматического тестирования главным образом. public boolean validate(TextLog log) { return true; } @Override public String getDialogName() { return description; } //работает со стороны сервера. public boolean tryUpdateGroup(Group group) { ConfigurationCache unpacked = new ConfigurationCache(this); for (GroupJson groupJson : unpacked.groupsJson.array) { if (groupJson.id == group.id) { groupJson.description = group.description; groupJson.language = String.valueOf(group.language); packedGroupsJson = Utils_.gson.toJson(unpacked.groupsJson); return true; } } return false; } public boolean tryDeleteGroup(Group group) { boolean flag = false; ConfigurationCache unpacked = new ConfigurationCache(this); List actualGroups = new Vector<>(); for (GroupJson groupJson : unpacked.groupsJson.array) { if (groupJson.id == group.id) flag = true; else actualGroups.add(groupJson); } if (flag) { unpacked.groupsJson.array = actualGroups; packedGroupsJson = Utils_.gson.toJson(unpacked.groupsJson); } return flag; } public boolean tryUpdateSettings(Settings settings) { ConfigurationCache unpacked = new ConfigurationCache(this); for (SettingsJson settingsJson : unpacked.settingsJson.array) { if (settingsJson.id == settings.id) { settingsJson.description = settings.description; packedSettingsJson = Utils_.gson.toJson(unpacked.settingsJson); return true; } } return false; } public boolean tryDeleteSettings(Settings settings) { boolean flag = false; ConfigurationCache unpacked = new ConfigurationCache(this); List actualSettings = new Vector<>(); for (SettingsJson settingsJson : unpacked.settingsJson.array) { if (settingsJson.id == settings.id) flag = true; else actualSettings.add(settingsJson); } if (flag) { unpacked.settingsJson.array = actualSettings; packedSettingsJson = Utils_.gson.toJson(unpacked.settingsJson); } return flag; } public boolean tryDeleteTest(Test test) { boolean flag = false; ConfigurationCache unpacked = new ConfigurationCache(this); List actualTests = new Vector<>(); for (TestJson testJson : unpacked.testsJson.array) { if (testJson.id==test.id) flag = true; else actualTests.add(testJson); } if (flag) { unpacked.testsJson.array = actualTests; packedTestsJson = Utils_.gson.toJson(unpacked.testsJson); } return flag; } public boolean tryDeleteTests(LinkedHashMap tests) { boolean flag = false; ConfigurationCache unpacked = new ConfigurationCache(this); List actualTests = new Vector<>(); for (TestJson testJson : unpacked.testsJson.array) { if (tests.containsKey(testJson.id)) flag = true; else actualTests.add(testJson); } if (flag) { unpacked.testsJson.array = actualTests; packedTestsJson = Utils_.gson.toJson(unpacked.testsJson); } return flag; } }