перевод инфы о файлах в джсон. попутно задел под пользовательские типы файлов стиль язык
This commit is contained in:
2025-03-07 03:10:05 +03:00
parent 670324837d
commit d66fdc5e77
12 changed files with 77 additions and 45 deletions

View File

@@ -1,15 +1,24 @@
package _VisualDVM.TestingSystem.Common.Test.Json;
import _VisualDVM.ProjectData.Files.FileType;
import _VisualDVM.ProjectData.Files.LanguageStyle;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import com.google.gson.annotations.Expose;
public class TestFileJson {
@Expose
public String name="";
public String name = "";
@Expose
public FileType type = FileType.none;
@Expose
public LanguageName language = LanguageName.n;
@Expose
public LanguageStyle style = LanguageStyle.none;
public TestFileJson() {
}
public TestFileJson(ProjectFile src) {
name = src.file.getName();
type = src.fileType;
language = src.languageName;
style = src.style;
}
}

View File

@@ -3,7 +3,7 @@ import com.google.gson.annotations.Expose;
import java.util.List;
import java.util.Vector;
public class TestsFilesJson {
public class TestFilesJson {
@Expose
public List<TestFileJson> values = new Vector<>();
}

View File

@@ -12,6 +12,8 @@ import _VisualDVM.ProjectData.Files.FileState;
import _VisualDVM.ProjectData.Files.FileType;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import com.sun.org.glassfish.gmbal.Description;
import org.apache.commons.io.FileUtils;
@@ -27,8 +29,8 @@ public class Test extends riDBObject {
public String args = ""; //аргументы командной строки. на всякий случай поле зарезервирую. пусть будут.
@Description("DEFAULT -1")
public int group_id = CommonConstants.Nan;
@Description("DEFAULT ''")
public String files = ""; //файлы теста
//@Description("DEFAULT ''")
//public String files = ""; //файлы теста
@Description("DEFAULT ''")
public String extended_description="";
@Description("DEFAULT ''")
@@ -110,9 +112,7 @@ public class Test extends riDBObject {
throw new RepositoryRefuseException("Не удалось переписать архив проекта");
return true;
}
public String getFilesForTable() {
return files.replace("\n", ";");
}
//todo проджект файлы тут не нужны. сделать с учетом джсона
public LinkedHashMap<LanguageName, Vector<ProjectFile>> getPrograms() {
LinkedHashMap<LanguageName, Vector<ProjectFile>> res = new LinkedHashMap<>();
//--
@@ -120,14 +120,12 @@ public class Test extends riDBObject {
res.put(LanguageName.c, new Vector<>());
res.put(LanguageName.cpp, new Vector<>());
//--
String[] files_names = files.split("\n");
for (String file_name : files_names) {
ProjectFile file = new ProjectFile(new File(file_name));
TestFilesJson json = Utils_.gson.fromJson(packedFilesJson,TestFilesJson.class);
for (TestFileJson file : json.values) {
//--
if (!file.state.equals(FileState.Excluded) &&
file.fileType.equals(FileType.program) &&
(!file.languageName.equals(LanguageName.n)))
res.get(file.languageName).add(file);
if (file.type.equals(FileType.program) &&
(!file.language.equals(LanguageName.n)))
res.get(file.language).add(new ProjectFile(new File(file.name)));
}
return res;
}

View File

@@ -15,6 +15,7 @@ import _VisualDVM.GlobalData.Tasks.TaskState;
import _VisualDVM.Passes.All.DownloadRepository;
import _VisualDVM.Passes.All.ZipFolderPass;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ProjectData.LanguageName;
import _VisualDVM.Repository.EmailMessage;
import _VisualDVM.Repository.Server.RepositoryServer;
@@ -23,6 +24,8 @@ import _VisualDVM.Repository.Server.ServerExchangeUnit_2021;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.MachineProcess.MachineProcess;
import _VisualDVM.TestingSystem.Common.MachineProcess.MachineProcessSet;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.Common.Test.TestType;
import _VisualDVM.TestingSystem.Common.TestingPackageToKill.TestingPackageToKill;
@@ -696,14 +699,15 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
File[] files = src.listFiles(pathname -> !pathname.isDirectory());
if (files != null && files.length > 0) {
//--
Vector<String> filesNames = new Vector<>();
for (File file : files)
filesNames.add(file.getName());
TestFilesJson filesJson= new TestFilesJson();
for (File file : files) {
filesJson.values.add(new TestFileJson(new ProjectFile(file)));
}
//--
Test test = new Test();
test.group_id = group.id;
test.description = name;
test.files = String.join("\n", filesNames);
test.packedFilesJson = Utils_.gson.toJson(filesJson);
test.sender_address = group.sender_address;
test.sender_name = group.sender_name;
test.extended_description = descriptions.get(name);

View File

@@ -1,6 +1,5 @@
package _VisualDVM.TestingSystem.Common;
import Common.CommonConstants;
import Common.Database.RepositoryRefuseException;
import Common.Database.SQLITE.SQLiteDatabase;
import Common.Utils.Utils_;
import _VisualDVM.ComponentsServer.Component.Sapfor.Sapfor;
@@ -9,9 +8,12 @@ import _VisualDVM.Constants;
import _VisualDVM.Global;
import _VisualDVM.Passes.All.ZipFolderPass;
import _VisualDVM.Passes.PassCode;
import _VisualDVM.ProjectData.Files.ProjectFile;
import _VisualDVM.ServerObjectsCache.VisualCaches;
import _VisualDVM.TestingSystem.Common.Group.Group;
import _VisualDVM.TestingSystem.Common.Group.GroupsDBTable;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFileJson;
import _VisualDVM.TestingSystem.Common.Test.Json.TestFilesJson;
import _VisualDVM.TestingSystem.Common.Test.Test;
import _VisualDVM.TestingSystem.Common.Test.TestDBTable;
import _VisualDVM.TestingSystem.Common.TestingPackageToKill.TestingPackagesToKillDBTable;
@@ -30,7 +32,6 @@ import _VisualDVM.TestingSystem.SAPFOR.SapforSettingsCommand.SapforSettingsComma
import _VisualDVM.TestingSystem.SAPFOR.ServerSapfor.ServerSapfor;
import _VisualDVM.TestingSystem.SAPFOR.ServerSapfor.ServerSapforState;
import _VisualDVM.TestingSystem.SAPFOR.ServerSapfor.ServerSapforsDBTable;
import _VisualDVM.Utils;
import javafx.util.Pair;
import org.apache.commons.io.FileUtils;
@@ -210,7 +211,9 @@ public class TestsDatabase extends SQLiteDatabase {
test.sender_name = account.name;
test.sender_address = account.email;
test.group_id = group.id;
test.files = file.getName();
TestFilesJson testFilesJson=new TestFilesJson();
testFilesJson.values.add(new TestFileJson(new ProjectFile(file)));
test.packedFilesJson=Utils_.gson.toJson(testFilesJson);
Insert(test);
//->>
SaveTestFromSingleFile(sapfor, group, test, file);