рефакторинг конфигураций тестирования сапфор. кнфигурация сделана как пара - набор тестов+ наборы настроек. наборы настроек стали отдельным объектом

This commit is contained in:
2024-09-28 21:47:17 +03:00
parent 4547fd10bd
commit b89283fc91
50 changed files with 338 additions and 590 deletions

View File

@@ -342,9 +342,6 @@ public enum Current {
public static boolean CheckID(Current name, int id) {
return (get(name) != null) && (((iDBObject) get(name)).id == id);
}
public static TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand getSapforConfigurationCommand() {
return (TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommand) get(Current.SapforConfigurationCommand);
}
public static boolean HasSapforProfile() {
return get(Current.SapforProfile) != null;
}

View File

@@ -1,5 +1,4 @@
package Common.UI;
import Common.Constants;
import Common.Current;
import Common.Database.DataSet;
import Common.Global;
@@ -17,7 +16,6 @@ import Common.UI.Trees.GraphTreeCellRenderer;
import Common.UI.Trees.SelectionTreeCellRenderer;
import Common.UI.Windows.FormType;
import Common.UI.Windows.SearchReplaceForm;
import Common.Utils.Index;
import Common.Utils.Utils;
import GlobalData.Compiler.CompilersDBTable;
import GlobalData.Compiler.CompilersMenuBar;
@@ -76,11 +74,9 @@ import TestingSystem.DVM.DVMTasks.DVMRunTasksBar;
import TestingSystem.DVM.DVMTasks.DVMRunTasksSet;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationDBTable;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfigurationsMenuBar;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsDBTable;
import TestingSystem.SAPFOR.SapforConfigurationCommand.SapforConfigurationCommandsMenuBar;
import TestingSystem.SAPFOR.SapforPackage.SapforPackageDBTable;
import TestingSystem.SAPFOR.SapforSettings.SapforSettingsBar;
import TestingSystem.SAPFOR.SapforSettings.SapforSettingsCommandsBar;
import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommandsBar;
import TestingSystem.SAPFOR.SapforSettings.SapforSettingsDBTable;
import TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsCommandsDBTable;
import TestingSystem.SAPFOR.SapforTasksPackage.UI.SapforPackagesBar;
@@ -248,7 +244,6 @@ public class UI {
menuBars.put(RunTasksDBTable.class, new DataMenuBar("задачи на запуск"));
//---->>
menuBars.put(SapforConfigurationDBTable.class, new SapforConfigurationsMenuBar());
menuBars.put(SapforConfigurationCommandsDBTable.class, new SapforConfigurationCommandsMenuBar());
//---->>
menuBars.put(RegionsSet.class, new DataMenuBar("области распараллеливания"));
menuBars.put(ArraysSet.class, new DataMenuBar("массивы"));

View File

@@ -5,15 +5,20 @@ import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.Group.Group;
import TestingSystem.Common.Group.Json.GroupJson;
import TestingSystem.Common.Group.Json.GroupsJson;
import TestingSystem.Common.Settings.Json.SettingsArrayJson;
import TestingSystem.Common.Settings.Json.SettingsJson;
import TestingSystem.Common.Test.Json.TestJson;
import TestingSystem.Common.Test.Json.TestsJson;
import TestingSystem.Common.Test.Test;
import java.util.LinkedHashMap;
import java.util.Vector;
public class ConfigurationCache extends VisualCache{
public GroupsJson groupsJson = null;
public String groupsDescriptions = null;
public TestsJson testsJson = null;
public SettingsArrayJson settingsJson = null;
public String settingsSummary = null;
public Vector<String> groupsSummary= null;
//--
public ConfigurationCache(Configuration configuration) {
if (configuration.packedGroupsJson.isEmpty()) {
@@ -30,16 +35,38 @@ public class ConfigurationCache extends VisualCache{
testsJson = Utils.gson.fromJson(configuration.packedTestsJson, TestsJson.class);
}
//-
Vector<String> groupsDescriptionsVector = new Vector<>();
for (GroupJson groupJson : groupsJson.array)
groupsDescriptionsVector.add(groupJson.description);
groupsDescriptions= String.join(";", groupsDescriptionsVector);
if (settingsJson == null) {
if (configuration.packedSettingsJson.isEmpty())
settingsJson = new SettingsArrayJson(); //просто пустой
else
settingsJson = Utils.gson.fromJson(configuration.packedSettingsJson, SettingsArrayJson.class);
}
//-
LinkedHashMap<String, Vector<String>> gmap = new LinkedHashMap<>();
for (GroupJson groupJson: groupsJson.array){
Vector<String> vector = null;
if (gmap.containsKey(groupJson.language)){
vector = gmap.get(groupJson.language);
}else {
vector = new Vector<>();
gmap.put(groupJson.language, vector);
}
vector.add(groupJson.description);
}
groupsSummary = new Vector<>();
for (String language: gmap.keySet()){
groupsSummary.add(language+": "+String.join(";", gmap.get(language)));
}
Vector<String> settingsDescriptionsVector = new Vector<>();
for (SettingsJson settingsJson : settingsJson.array)
settingsDescriptionsVector.add(settingsJson.description);
settingsSummary = String.join(";", settingsDescriptionsVector);
}
public int getTestsCount() {
return testsJson.array.size();
}
public String getGroupsDescriptions() {
return groupsDescriptions;
public String getSettingsDescriptions() {
return settingsSummary;
}
public Vector<Group> getGroups(){
Vector<Group> groups = new Vector<>();

View File

@@ -0,0 +1,22 @@
package Common.UI.VisualCache;
import Common.Global;
import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.Settings.Json.SettingsJson;
import TestingSystem.Common.Test.Json.TestJson;
import TestingSystem.Common.Test.Test;
import TestingSystem.SAPFOR.SapforSettings.SapforSettings;
import java.util.Vector;
public class SapforConfigurationCache extends ConfigurationCache{
public SapforConfigurationCache(Configuration configuration) {
super(configuration);
}
public Vector<SapforSettings> getSettings(){
Vector<SapforSettings> res = new Vector<>();
for (SettingsJson settingsJson : settingsJson.array){
if (Global.testingServer.db.sapforSettings.containsKey(settingsJson.id))
res.add(Global.testingServer.db.sapforSettings.get(settingsJson.id));
}
return res;
}
}

View File

@@ -2,6 +2,8 @@ package Common.UI.VisualCache;
import Common.Database.DBObject;
import TestingSystem.Common.Configuration.Configuration;
import TestingSystem.Common.TestingPackage.TestingPackage;
import TestingSystem.DVM.DVMConfiguration.DVMConfiguration;
import TestingSystem.SAPFOR.SapforConfiguration.SapforConfiguration;
import java.util.LinkedHashMap;
//нужен для серверных объектов, чтобы в сокет не класть лишнего.
@@ -19,7 +21,9 @@ public class VisualCaches {
}
//чтобы не трогать сами объекты и не сбить сериализацию
static VisualCache createCache(Object object) {
if (object instanceof Configuration)
if (object instanceof SapforConfiguration)
return new SapforConfigurationCache((Configuration) object);
if (object instanceof DVMConfiguration)
return new ConfigurationCache((Configuration) object);
if (object instanceof TestingPackage)
return new PackageCache((TestingPackage) object);