package dslab.protocol.dmap; import dslab.protocol.Message; import dslab.routing.Address; import java.util.Objects; /** * Represents a list entry for the DMAP {@code list} command (see assignment 2, section 2.6.1). */ public class MessageMetadata { private final Integer id; private final Address sender; private final String subject; public MessageMetadata(Integer id, Message message) { this(id,message.getSender(), message.getSubject()); } public MessageMetadata(Integer id, Address sender, String subject){ this.id = id; this.sender = sender; this.subject = subject; } public Integer getId() { return id; } public Address getSender() { return sender; } public String getSubject() { return subject; } @Override public String toString() { return id + " " + sender + " " + subject; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; MessageMetadata that = (MessageMetadata) o; return id.equals(that.id) && sender.equals(that.sender) && subject.equals(that.subject); } @Override public int hashCode() { return Objects.hash(id, sender, subject); } }