package ch.ethz.syslab.telesto.common.model;
import java.sql.Timestamp;
import ch.ethz.syslab.telesto.server.db.result.DatabaseResultEntry;
public class Message implements DatabaseResultEntry {
public int id;
public int queueId;
public int senderId;
public int receiverId;
public int context;
public byte priority;
public Timestamp timeOfArrival;
public String message;
public Message() {
}
public Message(int queueId, byte priority, String message) {
this(0, queueId, 0, 0, 0, priority, null, message);
}
public Message(int queueId, int receiverId, byte priority, String message) {
this(0, queueId, 0, receiverId, 0, priority, null, message);
}
/**
* Create a response message that takes care of setting the same queueId, context and priority and setting the right
* receiver.
*
* @param request
* Message to create a response for
* @param message
* content of the new message
*/
public Message(Message request, String message) {
this(0, request.queueId, 0, request.senderId, request.context, request.priority, null, message);
}
public Message(int id, int queueId, int senderId, int receiverId, int context, byte priority, Timestamp timeOfArrival, String message) {
this.id = id;
this.queueId = queueId;
this.senderId = senderId;
this.receiverId = receiverId;
this.context = context;
this.priority = priority;
this.timeOfArrival = timeOfArrival;
this.message = message;
}
@Override
public boolean equals(Object other) {
if (other instanceof Message) {
return ((Message) other).id == id;
} else {
return false;
}
}
@Override
public int hashCode() {
return id;
}
}