package Visual_DVM_2021.Passes; import Common.Database.iDBTable; import Common.Global; import Repository.Server.ServerCode; import Repository.Server.ServerExchangeUnit_2021; import TestingSystem.Common.TestingPackage.TestingPackage; import Visual_DVM_2021.Passes.Server.TestingSystemPass; import javafx.util.Pair; import java.util.Vector; public abstract class ActualizeTestingPackages
extends TestingSystemPass p_in) {
p = p_in;
}
iDBTable getTable() {
return (iDBTable ) Global.testingServer.db.tables.get(p);
}
protected abstract ServerCode getCheckCode();
@Override
protected boolean needsAnimation() {
return false;
}
@Override
protected boolean canStart(Object... args) throws Exception {
target = new Vector<>();
for (P testingPackage : getTable().Data.values()) {
if (testingPackage.state.isActive()) {
target.add(new Pair(testingPackage.id, testingPackage.ChangeDate));
}
}
return !target.isEmpty();
}
@Override
protected void ServerAction() throws Exception {
Command(new ServerExchangeUnit_2021(getCheckCode(), "", target));
}
@Override
protected void performDone() throws Exception {
Vector res = (Vector ) response.object;
Global.testingServer.db.BeginTransaction();
for (P actual : res)
Global.testingServer.db.UpdateWithCheck(actual);
Global.testingServer.db.Commit();
}
@Override
protected void showDone() throws Exception {
getTable().RefreshUI();
}
}