package _VisualDVM.Passes.All;
import Common.Utils.Utils_;
import _VisualDVM.Global;
import _VisualDVM.Passes.Server.ComponentsRepositoryPass;
import _VisualDVM.Repository.BugReport.BugReport;
import _VisualDVM.Repository.BugReport.BugReportInterface;
import _VisualDVM.Repository.Server.ServerCode;
import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
public class DownloadBugReport extends ComponentsRepositoryPass<BugReport> {
    @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_.bytesToFile((byte[]) response.object, BugReportInterface.getArchiveFile(target));
    }
    @Override
    protected boolean validate() {
        return BugReportInterface.getArchiveFile(target).exists();
    }
}
