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 String getSettingsDescriptions() { return settingsSummary; } 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; } }