Files
VisualSapfor/src/_VisualDVM/TestingSystem/Common/Configuration/Configuration.java

175 lines
6.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<Group> groups) {
packedGroupsJson = Utils_.gson.toJson(new GroupsJson(groups));
}
public void saveTestsAsJson(Vector<Test> tests) {
packedTestsJson = Utils_.gson.toJson(new TestsJson(tests));
}
public void saveSettingsAsJson(Vector<Settings> 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<GroupJson> 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<SettingsJson> 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<TestJson> 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<Integer, Test> tests) {
boolean flag = false;
ConfigurationCache unpacked = new ConfigurationCache(this);
List<TestJson> 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;
}
}