промежуточный. отладка проверки папки на бытность тестом.
This commit is contained in:
@@ -5,8 +5,8 @@ public class TestsMenuBar extends DataMenuBar {
|
||||
public TestsMenuBar() {
|
||||
super("тесты",
|
||||
PassCode_2021.DownloadTest,
|
||||
PassCode_2021.PublishTest,
|
||||
// PassCode_2021.CreateTestFromDirectory,
|
||||
//PassCode_2021.PublishTest,
|
||||
PassCode_2021.CreateTestFromFolder,
|
||||
PassCode_2021.EditTest,
|
||||
PassCode_2021.DeleteTest);
|
||||
}
|
||||
|
||||
@@ -951,18 +951,18 @@ public class Utils {
|
||||
}
|
||||
protected static boolean isSource(File file) {
|
||||
if (file.isFile()) {
|
||||
String extension = getExtension(file);
|
||||
String extension = getExtension(file).toLowerCase();
|
||||
switch (extension) {
|
||||
case "f":
|
||||
case "fdv":
|
||||
case "for":
|
||||
case "f77":
|
||||
case "f90":
|
||||
case "fh":
|
||||
// case "fh":
|
||||
case "c":
|
||||
case "cdv":
|
||||
case "cpp":
|
||||
case "h":
|
||||
// case "h":
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,6 +274,9 @@ public abstract class RepositoryServer<D extends Database> {
|
||||
case PublishObject:
|
||||
PublishObject();
|
||||
break;
|
||||
case PublishObjects:
|
||||
PublishObjects();
|
||||
break;
|
||||
//</editor-fold>
|
||||
case EXIT:
|
||||
Print("ЗАВЕРШИТЬ РАБОТУ СЕРВЕРА");
|
||||
@@ -327,6 +330,16 @@ public abstract class RepositoryServer<D extends Database> {
|
||||
response.object = publishObject(dbObject);
|
||||
afterPublishAction(dbObject);
|
||||
}
|
||||
private void PublishObjects() throws Exception {
|
||||
response = new ServerExchangeUnit_2021(ServerCode.OK);
|
||||
Vector<DBObject> objects = (Vector<DBObject>) request.object;
|
||||
for (DBObject dbObject: objects){
|
||||
beforePublishAction(dbObject);
|
||||
response.object = publishObject(dbObject);
|
||||
afterPublishAction(dbObject);
|
||||
}
|
||||
//ключи не возвращаем. пока не нужны.
|
||||
}
|
||||
protected Serializable publishObject(DBObject object) throws Exception {
|
||||
return (Serializable) db.InsertS(object).getPK();
|
||||
}
|
||||
|
||||
@@ -79,6 +79,7 @@ public enum ServerCode {
|
||||
PublishAccount,
|
||||
GetActualSapforPackageData,
|
||||
//--
|
||||
PublishObject
|
||||
PublishObject,
|
||||
PublishObjects
|
||||
// PublishTestProject
|
||||
}
|
||||
|
||||
117
src/Visual_DVM_2021/Passes/All/CreateTestFromFolder.java
Normal file
117
src/Visual_DVM_2021/Passes/All/CreateTestFromFolder.java
Normal file
@@ -0,0 +1,117 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Common.Constants;
|
||||
import Common.Current;
|
||||
import Common.Utils.Files.VDirectoryChooser;
|
||||
import Common.Utils.Utils;
|
||||
import ProjectData.Files.ProjectFile;
|
||||
import ProjectData.LanguageName;
|
||||
import TestingSystem.Common.Test.Test;
|
||||
import Visual_DVM_2021.Passes.Pass_2021;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Vector;
|
||||
public class CreateTestFromFolder extends Pass_2021<Test> {
|
||||
VDirectoryChooser directoryChooser = new VDirectoryChooser("Выбор домашней папки теста");
|
||||
@Override
|
||||
public String getIconPath() {
|
||||
return "/icons/OpenProject.png";
|
||||
}
|
||||
@Override
|
||||
public String getButtonText() {
|
||||
return "";
|
||||
}
|
||||
@Override
|
||||
protected boolean needsAnimation() {
|
||||
return true;
|
||||
}
|
||||
File dir = null;
|
||||
Vector<ProjectFile> project_files = new Vector<>();
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
if (args.length == 0) {
|
||||
if (!Current.Check(Log, Current.Group))
|
||||
return false;
|
||||
dir = directoryChooser.ShowDialog();
|
||||
} else {
|
||||
dir = (File) args[0];
|
||||
}
|
||||
if (dir ==null) {
|
||||
Log.Writeln_("Папка не выбрана.");
|
||||
return false;
|
||||
}
|
||||
//---
|
||||
File[] files = dir.listFiles();
|
||||
project_files = new Vector<>();
|
||||
int subdirs = 0;
|
||||
int bad = 0;
|
||||
int fortran_programs = 0;
|
||||
int headers = 0;
|
||||
int other_project_files = 0;
|
||||
//---
|
||||
if (dir.getName().equalsIgnoreCase(Constants.data)) {
|
||||
Log.Writeln_("Папка " + Utils.Brackets(dir) + " является служебной папкой визуализатора.");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
if (files == null) {
|
||||
Log.Writeln_("Не удалось получить список файлов для папки " + Utils.Brackets(dir) + ".");
|
||||
return false;
|
||||
}
|
||||
//--
|
||||
for (File file : files) {
|
||||
if (!Utils.validateProjectFile(file, Log)) {
|
||||
Log.Writeln_("Имя файла " + Utils.Brackets(file.getName())
|
||||
+ " содержит запрещённые символы " + Constants.all_forbidden_characters_string + ", или кириллицу."
|
||||
);
|
||||
bad++;
|
||||
}
|
||||
if (file.isDirectory() && !file.getName().equalsIgnoreCase(Constants.data)) {
|
||||
subdirs++;
|
||||
}
|
||||
if (file.isFile()) {
|
||||
ProjectFile projectFile = new ProjectFile(file);
|
||||
project_files.add(projectFile);
|
||||
switch (projectFile.fileType) {
|
||||
case program:
|
||||
if (projectFile.languageName.equals(LanguageName.fortran))
|
||||
fortran_programs++;
|
||||
else
|
||||
other_project_files++;
|
||||
break;
|
||||
case header:
|
||||
headers++;
|
||||
break;
|
||||
default:
|
||||
other_project_files++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//--
|
||||
if (subdirs > 0) {
|
||||
Log.Writeln_("Папка " + Utils.Brackets(dir) + " содержит вложенные подпапки.");
|
||||
return false;
|
||||
}
|
||||
if (bad > 0) {
|
||||
return false;
|
||||
}
|
||||
if (fortran_programs == 0) {
|
||||
Log.Writeln_("Папка не содержит ни одной программы на языке FORTRAN.");
|
||||
return false;
|
||||
}
|
||||
if (other_project_files > 0) {
|
||||
Log.Writeln_("Папка содержит файлы, не являющиеся программами на языке FORTRAN, или заголовочными.");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@Override
|
||||
protected void body() throws Exception {
|
||||
System.out.println("found " + project_files.size());
|
||||
for (ProjectFile projectFile : project_files) {
|
||||
System.out.println(projectFile.file.getAbsolutePath());
|
||||
}
|
||||
System.out.println("===================");
|
||||
//--
|
||||
}
|
||||
}
|
||||
@@ -26,9 +26,7 @@ public class PublishTest extends PublishServerObject<TestingServer, Test> {
|
||||
}
|
||||
target.group_id = group_id;
|
||||
//подпапок нет. имена совпадают с относительными.
|
||||
Vector<String> filesNames = new Vector<>();
|
||||
for (String file: project.db.files.Data.keySet())
|
||||
filesNames.add(file);
|
||||
Vector<String> filesNames = new Vector<>(project.db.files.Data.keySet());
|
||||
target.files = String.join(";", filesNames);
|
||||
//--
|
||||
if (from_current_project) {
|
||||
|
||||
22
src/Visual_DVM_2021/Passes/All/PublishTests.java
Normal file
22
src/Visual_DVM_2021/Passes/All/PublishTests.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package Visual_DVM_2021.Passes.All;
|
||||
import Repository.Server.ServerCode;
|
||||
import Repository.Server.ServerExchangeUnit_2021;
|
||||
import TestingSystem.Common.Test.Test;
|
||||
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
||||
|
||||
import java.util.Vector;
|
||||
public class PublishTests extends TestingSystemPass<Vector<Test>> {
|
||||
@Override
|
||||
protected boolean canStart(Object... args) throws Exception {
|
||||
return target != null && !target.isEmpty();
|
||||
}
|
||||
@Override
|
||||
protected void ServerAction() throws Exception {
|
||||
Command(new ServerExchangeUnit_2021(ServerCode.PublishObjects, "", target));
|
||||
}
|
||||
@Override
|
||||
protected void performFinish() throws Exception {
|
||||
super.performFinish();
|
||||
passes.get(server.db.getSynchronizePassCode()).Do();
|
||||
}
|
||||
}
|
||||
@@ -299,12 +299,18 @@ public enum PassCode_2021 {
|
||||
//--
|
||||
CreateTestFromDirectory,
|
||||
CreateGroupFromDirectory,
|
||||
PublishTests,
|
||||
CreateTestFromFolder,
|
||||
//->
|
||||
TestPass;
|
||||
public String getDescription() {
|
||||
switch (this) {
|
||||
case Undefined:
|
||||
return "?";
|
||||
case CreateTestFromFolder:
|
||||
return "Создать тест из папки";
|
||||
case PublishTests:
|
||||
return "Опубликовать тесты";
|
||||
case SPF_RemoveOmpDirectives:
|
||||
return "Удаление Open MP директив";
|
||||
case CreateGroupFromDirectory:
|
||||
|
||||
Reference in New Issue
Block a user