package Visual_DVM_2021.Passes; import Common.Current; import Repository.Server.ServerCode; import Repository.Server.ServerExchangeUnit_2021; import TestingSystem.Common.TestingPackage.TestingPackage; import TestingSystem.Common.TestingPackageToKill.TestingPackageToKill; import Visual_DVM_2021.Passes.Server.TestingSystemPass; public abstract class AbortTestingPackage extends TestingSystemPass { TestingPackageToKill packageToKill = null; @Override public String getIconPath() { return "/icons/Ban.PNG"; } @Override public String getButtonText() { return ""; } public abstract Current currentName(); public abstract int getAbortType(); @Override protected boolean canStart(Object... args) throws Exception { packageToKill = null; if (Current.Check(Log, currentName())) { target = (TestingPackage) Current.get(currentName()); switch (target.state) { case Done: case Aborted: case DoneWithErrors: Log.Writeln_("Пакет уже завершен."); break; case Inactive: Log.Writeln_("Пакет неактивен."); break; default: packageToKill = new TestingPackageToKill(); packageToKill.packageId = target.id; packageToKill.type = getAbortType(); return true; } } ; return false; } @Override protected void ServerAction() throws Exception { Command(new ServerExchangeUnit_2021(ServerCode.PublishObject, null, packageToKill)); } }