package Visual_DVM_2021.Passes; import Common.Current; import Common.Global; import Common.Utils.Utils; import GlobalData.Settings.SettingName; import SapforTestingSystem.Json.SapforVersion_json; import SapforTestingSystem.SapforTask.SapforTask; import java.io.File; import java.nio.file.Paths; public abstract class OpenSapforVersionPass extends Pass_2021 { @Override public String getIconPath() { return "/icons/OpenProject.png"; } @Override public String getButtonText() { return ""; } public abstract Current getCurrentName(); @Override protected boolean needsAnimation() { return true; } @Override protected boolean canStart(Object... args) throws Exception { if (Current.Check(Log, getCurrentName())) { target = (SapforVersion_json) Current.get(getCurrentName()); return true; } return false; } @Override protected void body() throws Exception { SapforTask task = target.task; ShowMessage1("Построение дерева версий и создание баз данных..."); File rootHome = Paths.get(Global.getSetting(SettingName.Workspace).Value, Utils.getDateName(task.test_description)).toFile(); for (SapforVersion_json version_json : task.versions) { ShowMessage2(version_json.version); version_json.createProject(rootHome); } for (SapforVersion_json version_json : task.variants) { ShowMessage2(version_json.version); version_json.createProject(rootHome); } //-второй проход это запись логов и сообщений. у вариантов их быть не может. ShowMessage1("Прочтение журналов и сообщений..."); //без версий нельзя, иначе лишние файлы захватит. for (SapforVersion_json version_json : task.versions) { ShowMessage2(version_json.version); version_json.ReadMessages(); } } @Override protected void performDone() throws Exception { passes.get(PassCode_2021.OpenCurrentProject).Do(target.project.Home); } }