package _VisualDVM.ComponentsServer; import Common.Database.SQLITE.SQLiteDatabase; import Common.Utils.Vector_; import _VisualDVM.ComponentsServer.BugReport.BugReport; import _VisualDVM.ComponentsServer.BugReport.BugReportsDBTable; import _VisualDVM.ComponentsServer.BugReport.Json.VisualiserSettingJson; import _VisualDVM.ComponentsServer.BugReport.Json.VisualiserSettingsJson; import _VisualDVM.ComponentsServer.BugReportSetting.BugReportSetting; import _VisualDVM.ComponentsServer.BugReportSetting.BugReportSettingsDBTable; import _VisualDVM.ComponentsServer.Recipient.RecipientsDataSet; import _VisualDVM.Passes.PassCode; import _VisualDVM.ProjectData.SapforData.SapforProperties; import java.nio.file.Paths; import java.util.Vector; public class BugReportsDatabase extends SQLiteDatabase { public BugReportsDBTable bugReports; public BugReportSettingsDBTable bugReportSettings; public RecipientsDataSet recipients = new RecipientsDataSet(); public BugReportsDatabase() { super(Paths.get(System.getProperty("user.dir"), "Data", "bug_reports.sqlite").toFile()); } @Override protected void initAllTables() throws Exception { addTable(bugReports = new BugReportsDBTable()); addTable(bugReportSettings = new BugReportSettingsDBTable()); } @Override public void Init() throws Exception { DeleteDrafts(); } @Override public PassCode getSynchronizePassCode() { return PassCode.SynchronizeBugReports; } public void DeleteDrafts() throws Exception { Vector drafts = bugReports.getAllDrafts(); for (BugReport draft : drafts) Delete(draft); } @Override public void DropUI() { super.DropUI(); bugReports.ClearUI(); recipients.ClearUI(); } @Override public void ResetUI() { bugReports.ShowUI(); recipients.ShowUI(); //todo временно. super.ResetUI(); } public void Patch() throws Exception { Vector settings = new Vector<>(); //-- for (BugReport bugReport : bugReports.Data.values()) { //-- if (!bugReport.project_version.isEmpty()) { if (bugReport.visualiser_version < 1134) { VisualiserSettingsJson visualiserSettingsJson = bugReport.getSettingsJson(); for (VisualiserSettingJson visualiserSettingJson : visualiserSettingsJson.array) { BugReportSetting bugReportSetting = new BugReportSetting(); bugReportSetting.bugreport_id = bugReport.id; bugReportSetting.name = visualiserSettingJson.name; bugReportSetting.value = visualiserSettingJson.value; settings.add(bugReportSetting); } } else { SapforProperties sapforProperties = bugReport.getPropertiesJson(); Vector settings_= sapforProperties.toBugReportSettings(); for (BugReportSetting bugReportSetting: settings_) bugReportSetting.bugreport_id = bugReport.id; settings.addAll(settings_); } } //-- } BeginTransaction(); for (BugReportSetting bugReportSetting : settings) Insert(bugReportSetting); Commit(); } }