package _VisualDVM.Repository; import Common.Passes.PassException; import Common.Utils.Utils_; import _VisualDVM.Passes.Server.TestingSystemPass_OLD; import _VisualDVM.Repository.Server.ServerCode; import _VisualDVM.Repository.Server.ServerExchangeUnit_2021; 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); String dmessage = Utils_.Brackets(new Date()) + " " + message; 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_OLD pass = new TestingSystemPass_OLD() { @Override public String getDescription() { return ""; } @Override protected void ServerAction() throws Exception { Command(new ServerExchangeUnit_2021(code_in, arg, object_in)); target = server_response.object; } @Override protected boolean validate() { return Log.isEmpty(); } }; if (!pass.Do()) { ServerConnectionError(code_in, pass.Log.toString()); } 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 { throw new PassException(Utils_.Brackets(new Date().toString()) + " Ошибка взаимодействия с сервером " + code_in); } public abstract void perform() throws Exception; public void Perform() { try { perform(); } catch (Exception ex) { ex.printStackTrace(); } finally { Utils_.sleep(getSleepMillis()); } } }