package Common.Passes.All; import Common.Global; import Common.Utils.Utils; import Repository.ComponentsServer.Component.BugReport.BugReport; import Repository.ComponentsServer.Component.BugReport.BugReportInterface; import Repository.ServerCode; import Repository.ServerExchangeUnit_2021; import Common.Passes.Server.ComponentsRepositoryPass; public class DownloadBugReport extends ComponentsRepositoryPass { @Override protected boolean canStart(Object... args) { target = (BugReport) args[0]; return !BugReportInterface.getArchiveFile(target).exists(); } @Override protected void performPreparation() throws Exception { Utils.CheckDirectory(Global.BugReportsDirectory); } @Override protected void ServerAction() throws Exception { Command(new ServerExchangeUnit_2021(ServerCode.ReceiveBugReport, target.id)); Utils.unpackFile((byte[]) response.object, BugReportInterface.getArchiveFile(target)); } @Override protected boolean validate() { return BugReportInterface.getArchiveFile(target).exists(); } }