package box.message; import java.io.Serializable; import java.util.Date; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.xml.bind.annotation.XmlRootElement; import box.Box; /** * Represents a message * Can be serialized in XML via JAXB * @author Baptiste Lafontaine * @author Julie Garrone * */ @XmlRootElement @Entity public class Message implements Serializable { private static final long serialVersionUID = 4035485820029813303L; @Id @GeneratedValue(strategy=GenerationType.IDENTITY) public int id; public String senderName; @ManyToOne public Box receiverName; @Temporal(TemporalType.DATE) public Date sendingDate; public String subject; public String body; @Enumerated(EnumType.STRING) public MessageStatus status; public Message() {} ; // Needed by jaxb public Message(String senderName, Box receiverName, String subject, String body) { this.senderName = senderName; this.receiverName = receiverName; this.sendingDate = new Date(); this.subject = subject; this.body = body; this.status = MessageStatus.New; } public void setRead() { this.status = MessageStatus.Read; } public MessageStatus getStatus() { return this.status; } }