115 lines
4.5 KiB
Java
115 lines
4.5 KiB
Java
package TestingSystem.Common.Configuration;
|
|
import Common.Database.DBObject;
|
|
import Common.Database.riDBObject;
|
|
import Common.Global;
|
|
import Common.Utils.Utils;
|
|
import TestingSystem.Common.Group.Group;
|
|
import TestingSystem.Common.Group.Json.GroupJson;
|
|
import TestingSystem.Common.Group.Json.GroupsJson;
|
|
import TestingSystem.Common.Test.Json.TestJson;
|
|
import TestingSystem.Common.Test.Json.TestsJson;
|
|
import TestingSystem.Common.Test.Test;
|
|
import com.sun.org.glassfish.gmbal.Description;
|
|
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Vector;
|
|
public class Configuration extends riDBObject {
|
|
//конфигурация = данные для пакета.
|
|
//группы
|
|
//тесты
|
|
//настройки тестируемого объекта
|
|
//пакет = запуск конфигурация + тестируемый объект
|
|
//---
|
|
public int maxtime = 300;
|
|
@Description("DEFAULT 0")
|
|
public int autoTesting = 0;
|
|
public String printAuto(){
|
|
return autoTesting>0? "Да":"Нет";
|
|
}
|
|
//--
|
|
public String getFlags(){return "";}
|
|
public Vector<String> getFlagsArray(){return new Vector<>();}
|
|
//--
|
|
@Description("DEFAULT ''")
|
|
public String packedGroupsJson = "";
|
|
@Description("DEFAULT ''")
|
|
public String packedTestsJson = "";
|
|
//----
|
|
//---данные для отображения. кешировать их где-то еще? проблема что отправляются на сервер почем зря.
|
|
@Description("IGNORE")
|
|
public GroupsJson groupsJson = null;
|
|
@Description("IGNORE")
|
|
public Vector<String> groupsDescriptions = null;
|
|
@Description("IGNORE")
|
|
public TestsJson testsJson = null;
|
|
//--
|
|
@Override
|
|
public void SynchronizeFields(DBObject src) {
|
|
super.SynchronizeFields(src);
|
|
Configuration c = (Configuration) src;
|
|
//--
|
|
maxtime = c.maxtime;
|
|
autoTesting= c.autoTesting;
|
|
//-
|
|
packedGroupsJson= c.packedGroupsJson;
|
|
packedTestsJson = c.packedTestsJson;
|
|
}
|
|
//-
|
|
public void saveGroupsAsJson(Vector<Group> groups) {
|
|
packedGroupsJson = Utils.jsonToPrettyFormat(Utils.gson.toJson(new GroupsJson(groups)));
|
|
}
|
|
void unpackGroupsAsJson() {
|
|
if (groupsJson == null) {
|
|
if (packedGroupsJson.isEmpty())
|
|
groupsJson = new GroupsJson(); //просто пустой
|
|
else
|
|
groupsJson = Utils.gson.fromJson(packedGroupsJson, GroupsJson.class);
|
|
}
|
|
}
|
|
public Vector<String> getGroupsDescriptions() {
|
|
if (groupsDescriptions==null) {
|
|
unpackGroupsAsJson();
|
|
groupsDescriptions = new Vector<>();
|
|
for (GroupJson groupJson : groupsJson.array)
|
|
groupsDescriptions.add(groupJson.description);
|
|
}
|
|
return groupsDescriptions;
|
|
}
|
|
public Vector<Group> getGroups() {
|
|
//здесь обращение реже так что буферизовать список групп не надо, тем более может меняться.
|
|
unpackGroupsAsJson();
|
|
Vector<Group> res = new Vector<>();
|
|
for (GroupJson groupJson: groupsJson.array){
|
|
if (Global.testingServer.db.groups.containsKey(groupJson.id))
|
|
res.add(Global.testingServer.db.groups.get(groupJson.id));
|
|
}
|
|
return res;
|
|
}
|
|
//--------------------------------------------------------------------->>>
|
|
public void saveTestsAsJson(Vector<Test> tests) {
|
|
packedTestsJson = Utils.jsonToPrettyFormat(Utils.gson.toJson(new TestsJson(tests)));
|
|
}
|
|
void unpackTestsAsJson() {
|
|
if (testsJson == null) {
|
|
if (packedTestsJson.isEmpty())
|
|
testsJson = new TestsJson(); //просто пустой
|
|
else
|
|
testsJson = Utils.gson.fromJson(packedTestsJson, TestsJson.class);
|
|
}
|
|
}
|
|
public int getTestsCount(){
|
|
unpackTestsAsJson();
|
|
return testsJson.array.size();
|
|
}
|
|
public Vector<Test> getTests() {
|
|
//здесь обращение реже так что буферизовать список групп не надо, тем более может меняться.
|
|
unpackTestsAsJson();
|
|
Vector<Test> res = new Vector<>();
|
|
for (TestJson testJson: testsJson.array){
|
|
if (Global.testingServer.db.tests.containsKey(testJson.id))
|
|
res.add(Global.testingServer.db.tests.get(testJson.id));
|
|
}
|
|
return res;
|
|
}
|
|
}
|