2024-04-26 17:57:58 +03:00
|
|
|
|
package Repository;
|
2024-10-07 14:22:52 +03:00
|
|
|
|
import Common.Utils.CommonUtils;
|
2024-04-26 17:57:58 +03:00
|
|
|
|
import Repository.Server.ServerCode;
|
|
|
|
|
|
import Repository.Server.ServerExchangeUnit_2021;
|
|
|
|
|
|
import Visual_DVM_2021.Passes.PassException;
|
|
|
|
|
|
import Visual_DVM_2021.Passes.Server.TestingSystemPass;
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.FileWriter;
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
|
public abstract class RepositoryClient {
|
|
|
|
|
|
//--
|
|
|
|
|
|
protected int getSleepMillis() {
|
|
|
|
|
|
return 2000;
|
|
|
|
|
|
}
|
|
|
|
|
|
//---
|
|
|
|
|
|
protected boolean isPrintOn() {
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
protected void Print(String message) {
|
|
|
|
|
|
try {
|
|
|
|
|
|
if (isPrintOn()) {
|
|
|
|
|
|
FileWriter testLog = new FileWriter(getClass().getSimpleName() + "_Log.txt", true);
|
2024-10-07 14:22:52 +03:00
|
|
|
|
String dmessage = CommonUtils.Brackets(new Date()) + " " + message;
|
2024-04-26 17:57:58 +03:00
|
|
|
|
System.out.println(dmessage);
|
|
|
|
|
|
testLog.write(dmessage + "\n");
|
|
|
|
|
|
testLog.close();
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//--
|
|
|
|
|
|
protected Object ServerCommand(ServerCode code_in, String arg, Serializable object_in) throws Exception {
|
|
|
|
|
|
TestingSystemPass<Object> pass = new TestingSystemPass<Object>() {
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public String getDescription() {
|
|
|
|
|
|
return "";
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected void ServerAction() throws Exception {
|
|
|
|
|
|
Command(new ServerExchangeUnit_2021(code_in, arg, object_in));
|
|
|
|
|
|
target = response.object;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
protected boolean validate() {
|
|
|
|
|
|
return Log.isEmpty();
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
2024-04-26 19:54:34 +03:00
|
|
|
|
if (!pass.Do()) {
|
2024-04-26 17:57:58 +03:00
|
|
|
|
ServerConnectionError(code_in, pass.Log.toString());
|
2024-04-26 19:54:34 +03:00
|
|
|
|
}
|
2024-04-26 17:57:58 +03:00
|
|
|
|
return pass.target;
|
|
|
|
|
|
}
|
|
|
|
|
|
protected Object ServerCommand(ServerCode code_in, Serializable object_in) throws Exception {
|
|
|
|
|
|
return ServerCommand(code_in, "", object_in);
|
|
|
|
|
|
}
|
|
|
|
|
|
protected Object ServerCommand(ServerCode code_in) throws Exception {
|
|
|
|
|
|
return ServerCommand(code_in, "", null);
|
|
|
|
|
|
}
|
|
|
|
|
|
protected void ServerConnectionError(ServerCode code_in, String logText) throws Exception {
|
2024-10-07 14:22:52 +03:00
|
|
|
|
throw new PassException(CommonUtils.Brackets(new Date().toString())+" Ошибка взаимодействия с сервером " + code_in);
|
2024-04-26 17:57:58 +03:00
|
|
|
|
}
|
|
|
|
|
|
public abstract void perform() throws Exception;
|
|
|
|
|
|
public void Perform(){
|
|
|
|
|
|
try {
|
|
|
|
|
|
perform();
|
|
|
|
|
|
} catch (Exception ex) {
|
|
|
|
|
|
ex.printStackTrace();
|
|
|
|
|
|
} finally {
|
2024-10-07 22:22:51 +03:00
|
|
|
|
CommonUtils.sleep(getSleepMillis());
|
2024-04-26 17:57:58 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|