package _VisualDVM.Passes.Sapfor; import Common.Passes.Pass; import Common.Utils.Utils_; import _VisualDVM.Current; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.TestingSystem.SAPFOR.Json.SapforVersion_json; import _VisualDVM.TestingSystem.SAPFOR.SapforTask.SapforTask; import java.io.File; import java.nio.file.Paths; public abstract class OpenSapforVersionPass extends Pass { @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 (Global.mainModule.Check(Log, getCurrentName())) { target = (SapforVersion_json) Global.mainModule.get(getCurrentName()); return true; } return false; } @Override protected void body() throws Exception { SapforTask task = target.task; ShowMessage1("Построение дерева версий и создание баз данных..."); File rootHome = Paths.get(Global.properties.Workspace, 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 { Global.mainModule.getPass(PassCode.OpenCurrentProject).Do(target.project.Home); } }