package models.com.mc.workers; import java.io.Serializable; public abstract class MasterWorkerProtocol { // Messages from/to Workers public static final class RegisterWorker implements Serializable { public final String workerId; public RegisterWorker(String workerId) { this.workerId = workerId; } @Override public String toString() { return "RegisterWorker{" + "workerId='" + workerId + '\'' + '}'; } } public static final class WorkerRequestsWork implements Serializable { public final String workerId; public WorkerRequestsWork(String workerId) { this.workerId = workerId; } @Override public String toString() { return "WorkerRequestsWork{" + "workerId='" + workerId + '\'' + '}'; } } public static final class WorkIsDone implements Serializable { public final String workerId; public final String workId; public final Object result; public WorkIsDone(String workerId, String workId, Object result) { this.workerId = workerId; this.workId = workId; this.result = result; } @Override public String toString() { return "WorkIsDone{" + "workerId='" + workerId + '\'' + ", workId='" + workId + '\'' + ", result=" + result + '}'; } } public static final class WorkFailed implements Serializable { public final String workerId; public final String workId; public WorkFailed(String workerId, String workId) { this.workerId = workerId; this.workId = workId; } @Override public String toString() { return "WorkFailed{" + "workerId='" + workerId + '\'' + ", workId='" + workId + '\'' + '}'; } } // Messages to Workers public static final class WorkIsReady implements Serializable { private static final WorkIsReady instance = new WorkIsReady(); public static WorkIsReady getInstance() { return instance; } } }