package TestingSystem.SAPFOR.Json; import GlobalData.Tasks.TaskState; import TestingSystem.SAPFOR.SapforPackage.SapforPackage; import TestingSystem.SAPFOR.SapforTask.MatchState; import TestingSystem.SAPFOR.SapforTask.SapforTask; import TestingSystem.SAPFOR.SapforTasksPackage.UI.PackageSummary; import com.google.gson.annotations.Expose; import javax.swing.tree.DefaultMutableTreeNode; import java.io.Serializable; import java.nio.file.Paths; import java.util.LinkedHashMap; import java.util.List; import java.util.Vector; public class SapforPackage_json implements Serializable { @Expose public int kernels = 1; @Expose public String sapfor_drv = ""; //файл с сапфором. Имя уникально для сценария. //-- @Expose public int max_set_id = 0; public int getMaxSetId() { return max_set_id++; } //-- @Expose public List testingSets = new Vector<>(); //сет = конфигурации + тесты. //-- @Expose public List tasks = new Vector<>(); //- public PackageSummary root = null; public PackageSummary comparison_root = null; //-- public LinkedHashMap allTasks = new LinkedHashMap<>(); public LinkedHashMap> sortedTasks = new LinkedHashMap<>(); // public LinkedHashMap>>> sortedTasks = new LinkedHashMap<>(); //-- задачи, отсортированные для сравнения. // public LinkedHashMap>>>> comparisonSortedTasks = new LinkedHashMap<>(); public LinkedHashMap>> comparisonSortedTasks = new LinkedHashMap<>(); //---- //--------- public void DropComparison() { // UI.Info("DROP COMPARISON"); comparison_root = null; comparisonSortedTasks.clear(); for (SapforTask task : allTasks.values()) task.matchState = MatchState.NotMatch; } public void SortTasks() { //-- СБРОС СРАВНЕНИЯ for (SapforTask task: allTasks.values()) task.matchState = MatchState.Unknown; //-- sortedTasks.clear(); for (TaskState state : TaskState.values()) { Vector stateTasks = new Vector<>(); for (SapforTask task : tasks) { if (task.state.equals(state)) stateTasks.add(task); } if (!stateTasks.isEmpty()) sortedTasks.put(state, stateTasks); } } public void SortTasksForComparison() { comparisonSortedTasks.clear(); for (MatchState matchState : MatchState.values()) { LinkedHashMap> match_state_tasks = new LinkedHashMap<>(); //- for (TaskState state : TaskState.values()) { Vector stateTasks = new Vector<>(); for (SapforTask task : tasks) { if (task.state.equals(state) && task.matchState.equals(matchState)) stateTasks.add(task); } if (!stateTasks.isEmpty()) { match_state_tasks.put(state, stateTasks); } } comparisonSortedTasks.put(matchState, match_state_tasks); } } public void buildTree(SapforPackage package_in) { root = new PackageSummary(); root.count = package_in.package_json.allTasks.size(); //-- for (TaskState state : sortedTasks.keySet()) { Vector tasks = sortedTasks.get(state); //- if (state.equals(TaskState.DoneWithErrors)) root.errors_count += tasks.size(); //- for (SapforTask task : tasks) { DefaultMutableTreeNode taskNode = task.getNode(Paths.get( package_in.getLocalWorkspace().getAbsolutePath(), String.valueOf(task.set_id), String.valueOf(task.sapfor_configuration_id) ).toFile()); root.add(taskNode); } } } public void buildComparisonTree(SapforPackage package_in) { comparison_root = new PackageSummary(); comparison_root.count = package_in.package_json.allTasks.size(); //-- for (MatchState match_state : comparisonSortedTasks.keySet()) { // MatchesSummary matchesSummary = new MatchesSummary(match_state); LinkedHashMap> task_states = comparisonSortedTasks.get(match_state); //--- for (TaskState state : task_states.keySet()) { Vector tasks = task_states.get(state); //- if (state.equals(TaskState.DoneWithErrors)) comparison_root.errors_count += tasks.size(); //- for (SapforTask task : tasks) { DefaultMutableTreeNode taskNode = task.getNode(Paths.get( package_in.getLocalWorkspace().getAbsolutePath(), String.valueOf(task.set_id), String.valueOf(task.sapfor_configuration_id) ).toFile()); comparison_root.add(taskNode); } } } } }