Files
VisualSapfor/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java
2024-02-24 23:06:49 +03:00

132 lines
5.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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<SapforTestingSet_json> testingSets = new Vector<>(); //сет = конфигурации + тесты.
//--
@Expose
public List<SapforTask> tasks = new Vector<>();
//-
public PackageSummary root = null;
public PackageSummary comparison_root = null;
//--
public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>();
public LinkedHashMap<TaskState, Vector<SapforTask>> sortedTasks = new LinkedHashMap<>();
// public LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
//-- задачи, отсортированные для сравнения.
// public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>>> comparisonSortedTasks = new LinkedHashMap<>();
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, Vector<SapforTask>>> 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<SapforTask> 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<TaskState, Vector<SapforTask>> match_state_tasks = new LinkedHashMap<>();
//-
for (TaskState state : TaskState.values()) {
Vector<SapforTask> 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<SapforTask> 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<TaskState, Vector<SapforTask>> task_states = comparisonSortedTasks.get(match_state);
//---
for (TaskState state : task_states.keySet()) {
Vector<SapforTask> 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);
}
}
}
}
}