Files
VisualSapfor/src/SapforTestingSystem/SapforTask/SapforTask.java

145 lines
5.2 KiB
Java
Raw Normal View History

2023-09-21 20:55:14 +03:00
package SapforTestingSystem.SapforTask;
2023-10-04 22:01:09 +03:00
import Common.Constants;
import Common.Current;
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;
2023-09-21 20:55:14 +03:00
import SapforTestingSystem.Json.SapforVersion_json;
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 java.util.Vector;
public class SapforTask extends DBObject {
2023-09-17 22:13:42 +03:00
//------------------------------------>>
@Description("PRIMARY KEY, UNIQUE")
@Expose
2023-09-29 21:46:08 +03:00
public long id = Constants.Nan;
2023-09-17 22:13:42 +03:00
@Description("DEFAULT '-1'")
@Expose
public String sapfor_configuration_id = "";
2023-10-29 01:03:37 +03:00
@Expose
@Description("DEFAULT ''")
public String sapfortaskspackage_id = "";
2023-09-17 22:13:42 +03:00
//------------------------------------->>
@Description("DEFAULT ''")
@Expose
public String test_description = "";
@Description("DEFAULT ''")
2023-10-18 22:16:22 +03:00
@Expose
public String group_description = "";
@Description("DEFAULT ''")
@Expose
2023-10-18 22:16:22 +03:00
public String flags = "";
@Description("DEFAULT ''")
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;
//в 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<>();
//-----------
public SapforTask() {
2023-09-17 22:13:42 +03:00
}
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;
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-10-29 01:03:37 +03:00
/*
public static boolean compareVersionsFiles(SapforVersion_json version1, SapforVersion_json version2, List<String> files) throws Exception {
for (String fileName : files) {
File file1 = new File(version1.version, fileName);
if (!file1.exists()) return false;
File file2 = new File(version2.version, fileName);
if (!file2.exists()) return false;
String text1 = FileUtils.readFileToString(file1, Charset.defaultCharset());
String text2 = FileUtils.readFileToString(file2, Charset.defaultCharset());
if (!text1.equals(text2))
return false;
}
return true;
}
2023-10-24 19:42:01 +03:00
//должны совпасть им теста, флаги, и коды
public boolean isComparable(SapforTask task) throws Exception {
return test_description.equalsIgnoreCase(task.test_description) &&
flags.equalsIgnoreCase(task.flags) &&
codes.equalsIgnoreCase(task.codes);
}
public boolean Compare(SapforTask task, Vector<String> comparisonLog) throws Exception {
2023-10-26 23:56:39 +03:00
/*
//1. сравнить списки файлов. без учета порядка.
if (filesList.size() != task.filesList.size())
return false;
for (String file1 : filesList) {
if (!task.filesList.contains(file1)) {
return false;
}
}
//2. сравнить состояния.
if (!state.equals(task.state))
return false;
//3. сравнить цепочки версий (?)
if (!getVersionsChain().equalsIgnoreCase(task.getVersionsChain()))
return false;
//4. сравнить версии. уже знаем что порядок преобразований идентичен и набор файлов одинаков.
// первая всегда исходная. поэтому не берется.
for (int i = 1; i < versions.size(); ++i) {
SapforVersion_json version1 = versions.get(i);
SapforVersion_json version2 = task.versions.get(i);
//--
if (!compareVersionsFiles(version1, version2, filesList)) return false;
}
2023-10-29 01:03:37 +03:00
return false;
}
2023-10-29 01:03:37 +03:00
*/
@Override
public boolean isVisible() {
return Current.HasSapforTasksPackage()&&Current.getSapforTasksPackage().id.equals(this.sapfortaskspackage_id);
}
2023-09-17 22:13:42 +03:00
}