Files
VisualSapfor/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java

230 lines
8.6 KiB
Java
Raw Normal View History

package TestingSystem.SAPFOR.SapforTask;
2023-10-04 22:01:09 +03:00
import Common.Constants;
2023-09-17 22:13:42 +03:00
import Common.Database.DBObject;
import Common.Utils.Utils;
2023-09-17 22:13:42 +03:00
import GlobalData.Tasks.TaskState;
import TestingSystem.SAPFOR.Json.SapforVersionState;
import TestingSystem.SAPFOR.Json.SapforVersion_json;
import TestingSystem.SAPFOR.SapforTasksPackage.UI.VersionSummary;
import Visual_DVM_2021.Passes.PassCode_2021;
2023-09-17 22:13:42 +03:00
import com.google.gson.annotations.Expose;
import com.sun.org.glassfish.gmbal.Description;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.File;
import java.util.Date;
2023-11-08 03:05:29 +03:00
import java.util.LinkedHashMap;
2023-09-17 22:13:42 +03:00
import java.util.Vector;
public class SapforTask extends DBObject {
2023-09-17 22:13:42 +03:00
//------------------------------------>>
@Expose
2023-09-29 21:46:08 +03:00
public long id = Constants.Nan;
2023-12-25 02:07:37 +03:00
@Expose
public int set_id = 0;
2023-09-17 22:13:42 +03:00
@Expose
2023-11-17 22:03:13 +03:00
public int sapfor_configuration_id = Constants.Nan;
2023-10-29 01:03:37 +03:00
@Expose
public long sapfortaskspackage_id = Constants.Nan;
2023-09-17 22:13:42 +03:00
//------------------------------------->>
@Expose
public String test_description = "";
2023-10-18 22:16:22 +03:00
@Expose
public String group_description = "";
@Expose
2023-10-18 22:16:22 +03:00
public String flags = "";
2023-09-17 22:13:42 +03:00
@Expose
2023-10-24 19:42:01 +03:00
public String codes = "";
2023-09-17 22:13:42 +03:00
@Expose
public TaskState state = TaskState.Inactive;
@Expose
public long StartDate = 0; //дата начала выполнения
@Expose
public long ChangeDate = 0;//дата окончания выполнения
//в json не выносить. это только для БД.
@Description("DEFAULT ''")
public String versionsDescription = "";
//------
@Description("IGNORE")
@Expose
public Vector<SapforVersion_json> versions = new Vector<>();
//----------
@Description("IGNORE")
@Expose
public Vector<SapforVersion_json> variants = new Vector<>();
//----------
@Description("IGNORE")
2024-02-16 21:44:13 +03:00
public MatchState match = MatchState.NotMatch;
// MatchState.Unknown;
2023-11-08 02:05:21 +03:00
//-----------
2023-11-08 03:05:29 +03:00
public String getUniqueKey() {
return group_description + "_" + test_description + "_" +sapfor_configuration_id;
2023-11-08 02:05:21 +03:00
}
public String getSummary() {
Vector<String> lines = new Vector<>();
lines.add(group_description);
lines.add(test_description);
lines.add(codes);
lines.add(flags);
return String.join(" ", lines);
}
//-----------
public SapforTask() {
2023-09-17 22:13:42 +03:00
}
public DefaultMutableTreeNode getVersionsTree(File configurationRoot) {
VersionSummary root = null;
VersionSummary child = null;
VersionSummary parent = null;
//--
for (SapforVersion_json version_json : versions) {
version_json.task = this;
// System.out.println(version_json.version);
2023-11-03 02:00:17 +03:00
//-
child = new VersionSummary(version_json, version_json.init(configurationRoot));
if (parent == null) {
root = child;
parent = child;
} else {
// if (!child.state.equals(SapforVersionState.Empty)) {
parent.add(child);
parent = child;
// }
}
2023-11-03 02:00:17 +03:00
//-
}
if (parent != null) {
for (SapforVersion_json version_json : variants) {
version_json.task = this;
// if (!child.state.equals(SapforVersionState.Empty)) {
parent.add(new VersionSummary(version_json, version_json.init(configurationRoot)));
// }
}
}
//--
return root;
}
2023-10-24 19:42:01 +03:00
public void Reset() {
state = TaskState.Inactive;
versions.clear();
variants.clear();
}
public SapforTask(SapforTask src) {
2023-09-17 22:13:42 +03:00
this.SynchronizeFields(src);
}
@Override
public Object getPK() {
return id;
}
@Override
public void SynchronizeFields(DBObject object) {
super.SynchronizeFields(object);
SapforTask t = (SapforTask) object;
2023-09-17 22:13:42 +03:00
id = t.id;
2023-12-25 02:07:37 +03:00
set_id= t.set_id;
sapfor_configuration_id = t.sapfor_configuration_id;
sapfortaskspackage_id = t.sapfortaskspackage_id;
//-
2023-09-17 22:13:42 +03:00
test_description = t.test_description;
group_description = t.group_description;
versionsDescription = t.versionsDescription;
//--
codes = t.codes;
2023-09-17 22:13:42 +03:00
state = t.state;
//--
2023-09-17 22:13:42 +03:00
}
2023-10-24 19:42:01 +03:00
public String getVersionsChain() {
Vector<String> versionsLines = new Vector<>();
2023-10-24 19:42:01 +03:00
for (int i = 1; i < versions.size(); ++i) {
versionsLines.add(Utils.Brackets(versions.get(i).description));
}
if (!variants.isEmpty()) {
versionsLines.add(Utils.Brackets(PassCode_2021.CreateParallelVariants.getDescription()));
}
return String.join("", versionsLines);
}
/*
2023-11-08 03:05:29 +03:00
@Override
public boolean isVisible() {
2023-11-17 22:03:13 +03:00
return Current.HasSapforTasksPackage() && Current.getSapforTasksPackage().id == this.sapfortaskspackage_id;
}
*/
2023-11-08 03:05:29 +03:00
public LinkedHashMap<String, SapforVersion_json> getSortedVersions() {
LinkedHashMap<String, SapforVersion_json> res = new LinkedHashMap<>();
for (SapforVersion_json version_json : versions)
res.put(version_json.version, version_json);
//--
for (SapforVersion_json version_json : variants)
res.put(version_json.version, version_json);
return res;
2023-10-24 19:42:01 +03:00
}
2023-11-08 03:05:29 +03:00
public void checkMatch(SapforTask task2) {
if (!state.equals(task2.state)) {
System.out.println("Не совпадение цепочки версий в задаче " + getUniqueKey());
} else if (versions.size() != task2.versions.size()) {
System.out.println("Не совпадение длины цепочки версий в задаче " + getUniqueKey());
} else if (variants.size() != task2.variants.size()) {
System.out.println("Не совпадение длины цепочки вариантов в задаче " + getUniqueKey());
} else {
LinkedHashMap<String, SapforVersion_json> versions1 = getSortedVersions();
LinkedHashMap<String, SapforVersion_json> versions2 = task2.getSortedVersions();
//---
for (String name1 : versions1.keySet()) {
if (!versions2.containsKey(name1)) {
System.out.println("Не совпадение имен версий в задаче " + getUniqueKey());
return;
}
}
System.out.println("сравнение версий.");
//--
2023-11-08 03:05:29 +03:00
for (String name1 : versions1.keySet()) {
System.out.println("version name=" + name1);
2023-11-08 03:05:29 +03:00
SapforVersion_json version1 = versions1.get(name1);
SapforVersion_json version2 = versions2.get(name1);
//---
if (!version1.isMatch(version2)) {
System.out.println("Не совпадение версий в задаче " + getUniqueKey());
return;
}
}
match = MatchState.Match;
2023-11-09 01:47:46 +03:00
task2.match = MatchState.Match;
}
}
2023-11-17 22:03:13 +03:00
public Date getStartDate() {
return new Date(StartDate);
}
2023-11-17 22:03:13 +03:00
public Date getChangeDate() {
return new Date(ChangeDate);
}
@Override
public String toString() {
return
"группа "+Utils.Brackets(group_description)+" тест "+Utils.Brackets(test_description)+" конфигурация "+Utils.Brackets(sapfor_configuration_id);
// getUniqueKey();
}
public String getPassesInfo(){
String res = "";
String [] data = codes.split(" ");
Vector<String> strings = new Vector<>();
for (String code_s: data){
PassCode_2021 code = PassCode_2021.valueOf(code_s);
strings.add(Utils.Brackets(code.getDescription()));
}
return String.join("", strings);
}
//---
public DefaultMutableTreeNode getNode(File configurationRoot) {
DefaultMutableTreeNode res = new DefaultMutableTreeNode(this);
DefaultMutableTreeNode flags_info = new DefaultMutableTreeNode("флаги: "+this.flags);
DefaultMutableTreeNode passes_info = new DefaultMutableTreeNode("проходы: "+getPassesInfo());
//-
int total_versions_count = versions.size()+variants.size();
DefaultMutableTreeNode versions_info = new DefaultMutableTreeNode("версии: "+total_versions_count);
versions_info.add(getVersionsTree(configurationRoot));
//--
res.add(flags_info);
res.add(passes_info);
res.add(versions_info);
return res;
}
2023-09-17 22:13:42 +03:00
}