проход для массового удаления объектов в сервера.

массовое удаление групп.
This commit is contained in:
2023-12-06 01:50:11 +03:00
parent 2b52763c02
commit 2a209bc94e
8 changed files with 127 additions and 37 deletions

View File

@@ -173,8 +173,6 @@ public abstract class RepositoryServer<D extends Database> {
public boolean canDelete(DBObject object) throws Exception {
return true;
}
public void DeleteAction(DBObject object) throws Exception {
}
public void StartAction() throws Exception {
}
public void Start() throws Exception {
@@ -249,13 +247,7 @@ public abstract class RepositoryServer<D extends Database> {
dbObject = (DBObject) request.object;
Print("Удалить объект " + dbObject.getPK());
db.DeleteWithCheck(dbObject);
DeleteAction(dbObject);
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
case DeleteObjectByPK:
Print("Удалить объект по ключу");
Pair<Class, Object> to_delete = (Pair<Class, Object>) request.object;
DeleteAction(db.DeleteByPK(to_delete.getKey(), to_delete.getValue()));
afterDeleteAction(dbObject);
response = new ServerExchangeUnit_2021(ServerCode.OK);
break;
case GetObjectCopyByPK:
@@ -277,6 +269,12 @@ public abstract class RepositoryServer<D extends Database> {
case PublishObjects:
PublishObjects();
break;
case DeleteObjectByPK:
DeleteObjectByPK();
break;
case DeleteObjectsByPK:
DeleteObjectsByPK();
break;
//</editor-fold>
case EXIT:
Print("ЗАВЕРШИТЬ РАБОТУ СЕРВЕРА");
@@ -323,30 +321,48 @@ public abstract class RepositoryServer<D extends Database> {
}
}
}
//--
protected Database getDefaultDatabase(){
return db;
}
//--
private void PublishObject() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
DBObject dbObject = (DBObject) request.object;
beforePublishAction(dbObject);
response.object = publishObject(dbObject);
response.object = (Serializable) getDefaultDatabase().InsertS(dbObject).getPK();
afterPublishAction(dbObject);
}
private void PublishObjects() throws Exception {
response = new ServerExchangeUnit_2021(ServerCode.OK);
Vector<DBObject> objects = (Vector<DBObject>) request.object;
for (DBObject dbObject: objects){
System.out.println(db);
Database database = getDefaultDatabase();
for (DBObject dbObject : objects) {
beforePublishAction(dbObject);
response.object = publishObject(dbObject);
System.out.println(response.object);
response.object = (Serializable) database.InsertS(dbObject).getPK();
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 {
}
//------------------------------
private void DeleteObjectByPK() throws Exception {
Print("Удалить объект по ключу");
Pair<Class, Object> to_delete = (Pair<Class, Object>) request.object;
afterDeleteAction(getDefaultDatabase().DeleteByPK(to_delete.getKey(), to_delete.getValue()));
response = new ServerExchangeUnit_2021(ServerCode.OK);
}
private void DeleteObjectsByPK() throws Exception {
Print("Удалить объекты по ключам");
Pair<Class, Vector<Object>> to_delete = (Pair<Class, Vector<Object>>) request.object;
Database database = getDefaultDatabase();
for (Object object : to_delete.getValue()) {
afterDeleteAction(database.DeleteByPK(to_delete.getKey(), object));
}
response = new ServerExchangeUnit_2021(ServerCode.OK);
}
public void afterDeleteAction(DBObject object) throws Exception {
}
}