промежуточный. Рефакторинг публикации теста из текущего проекта.

This commit is contained in:
2023-11-23 01:00:08 +03:00
parent 14b13eae97
commit e852443100
12 changed files with 222 additions and 329 deletions

View File

@@ -2,7 +2,6 @@ package Repository;
import Common.Constants;
import Common.Database.DBObject;
import Common.Database.Database;
import Common.Database.iDBObject;
import Common.Global;
import Common.Utils.InterruptThread;
import Common.Utils.Utils;
@@ -171,10 +170,6 @@ public abstract class RepositoryServer<D extends Database> {
public boolean needsEmail(String email) {
return true;
}
public void beforePublishAction(DBObject object) throws Exception {
}
public void afterPublishAction(DBObject object) throws Exception {
}
public boolean canDelete(DBObject object) throws Exception {
return true;
}
@@ -276,28 +271,8 @@ public abstract class RepositoryServer<D extends Database> {
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = db.getObjectsCopies(p.getKey(), (Vector<Object>) p.getValue());
break;
case DeleteObjects:
Print("Удалить список объектов ");
Vector<Object> objects = (Vector<Object>) request.object;
db.BeginTransaction();
for (Object object : objects) {
dbObject = (DBObject) object;
if (canDelete(dbObject)) {
db.DeleteWithCheck(dbObject);
DeleteAction(dbObject);
}
}
db.Commit();
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
//------------------------
case PublishObject:
dbObject = (DBObject) request.object;
beforePublishAction(dbObject);
PublishObject(dbObject);
afterPublishAction(dbObject);
response = new ServerExchangeUnit_2021(ServerCode.OK);
response.object = (Serializable) dbObject.getPK();
PublishObject();
break;
//</editor-fold>
case EXIT:
@@ -345,13 +320,18 @@ public abstract class RepositoryServer<D extends Database> {
}
}
}
public void PublishObject(DBObject dbObject) throws Exception {
if (dbObject instanceof iDBObject) {
Print("Опубликовать объект");
db.Insert(dbObject);
} else {
Print("Опубликовать объект с автоинкрементным ключом");
db.InsertWithCheck(dbObject); //проверка не нужна,АИ гарантирует что ключ уникален.
}
private void PublishObject() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
DBObject dbObject = (DBObject) request.object;
beforePublishAction(dbObject);
response.object = publishObject(dbObject);
afterPublishAction(dbObject);
}
protected Serializable publishObject(DBObject object) throws Exception {
return (Serializable) db.InsertS(object).getPK();
}
protected void beforePublishAction(DBObject object) throws Exception {
}
protected void afterPublishAction(DBObject object) throws Exception {
}
}