package Common.UI.VisualCache; import Common.Global; import Common.Utils.Utils; 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 TestsJson testsJson = null; public SettingsArrayJson settingsJson = null; public String settingsSummary = null; public Vector groupsSummary = null; //-- public ConfigurationCache(Configuration configuration) { if (configuration.packedGroupsJson.isEmpty()) { groupsJson = new GroupsJson(); //просто пустой } else { groupsJson = Utils.gson.fromJson(configuration.packedGroupsJson, GroupsJson.class); } //-- if (testsJson == null) { if (configuration.packedTestsJson.isEmpty()) testsJson = new TestsJson(); //просто пустой else testsJson = Utils.gson.fromJson(configuration.packedTestsJson, TestsJson.class); } //- if (settingsJson == null) { if (configuration.packedSettingsJson.isEmpty()) settingsJson = new SettingsArrayJson(); //просто пустой else settingsJson = Utils.gson.fromJson(configuration.packedSettingsJson, SettingsArrayJson.class); } //- LinkedHashMap> gmap = new LinkedHashMap<>(); for (GroupJson groupJson : groupsJson.array) { Vector 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 settingsDescriptionsVector = new Vector<>(); for (SettingsJson settingsJson : settingsJson.array) settingsDescriptionsVector.add(settingsJson.description); settingsSummary = String.join(";", settingsDescriptionsVector); } public int getTestsCount() { return testsJson.array.size(); } public Vector getGroups() { Vector groups = new Vector<>(); for (GroupJson groupJson : groupsJson.array) { if (Global.testingServer.db.groups.containsKey(groupJson.id)) groups.add(Global.testingServer.db.groups.get(groupJson.id)); } return groups; } public Vector getTests() { Vector tests = new Vector<>(); for (TestJson testJson : testsJson.array) { if (Global.testingServer.db.tests.containsKey(testJson.id)) tests.add(Global.testingServer.db.tests.get(testJson.id)); } return tests; } public Vector getGroupTests(Group group) { Vector tests = new Vector<>(); for (TestJson testJson : testsJson.array) { if (Global.testingServer.db.tests.containsKey(testJson.id)) { Test test = Global.testingServer.db.tests.get(testJson.id); if (test.group_id == group.id) tests.add(test); } } return tests; } }