перевод инфы о файлах в джсон. попутно задел под пользовательские типы файлов стиль язык
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

@@ -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;
}