DS-Lab / src / main / java / dslab / protocol / dmap / MessageMetadata.java
MessageMetadata.java
Raw
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);
    }
}