package se.chalmers.gdcn.network; import java.io.Serializable; /** * Class for encapsulating task messages. It is similar to {@link NetworkMessage} * but more specific for this purpose. NetworkMessage can be used for any purpose and will in this case * contain an object of TaskMessage. */ class TaskMessage implements Serializable { private final TaskMessageType type; private final WorkerID senderID; private final Object actualContent; TaskMessage(TaskMessageType type, WorkerID senderID, Object actualContent) { this.type = type; this.senderID = senderID; this.actualContent = actualContent; } public static TaskMessage check(Object messageContent){ if(!(messageContent instanceof TaskMessage)){ throw new IllegalStateException("Message from is not a TaskMessage! "+messageContent.toString()); } return (TaskMessage) messageContent; } public TaskMessageType getType() { return type; } public WorkerID getSenderID() { return senderID; } public Object getActualContent() { return actualContent; } @Override public String toString() { return //"TaskMsg"+ "{" + type + //disabled for demo // ", " + actualContent + '}'; } }