import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * Purdue CS180 - Summer 22 - Project 5 - Message * * This class stores the data and methods necessary * to send, edit and delete messages * * @author Jun Shern Lim * * @version 31st July 2022 */ public class Message { private LocalDateTime dateTime; private String messageContents; private String senderName; private String senderID; private boolean isDisappearing; private boolean isNew; public Message(String senderName, String senderID, String messageContents, String time, boolean isDisappearing, boolean isNew) { this.senderName = senderName; this.senderID = senderID; this.messageContents = messageContents; this.dateTime = convertTime(time); this.isDisappearing = isDisappearing; this.isNew = isNew; } public boolean isEquals(Message message) { return message.getSenderName().equals(senderName) && message.getSenderID().equals(senderID) && message.getMessageContents().equals(messageContents) && message.getDateTime().equals(dateTime); } public boolean getIsDisappearing() { return isDisappearing; } public void setMessageContents(String messageContents) { this.messageContents = messageContents; } public boolean getIsNew() { return isNew; } public String getMessageContents() { return messageContents; } public String getSenderName() { return senderName; } public String getSenderID() { return senderID; } public boolean isDisappearing() { return isDisappearing; } public LocalDateTime getDateTime() { return dateTime; } public void setIsNew(boolean isNew) { this.isNew = isNew; } //converts the String time into a LocalDate time public LocalDateTime convertTime(String time) { return LocalDateTime.parse(time); } public String toString() { DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("dd-MMM-yy"); DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm"); if (isDisappearing) { return String.format("%s on %s at %s: %s (Disappearing)", senderName, dateTime.format(dateFormatter), dateTime.format(timeFormatter), messageContents); } else { return String.format("%s on %s at %s: %s", senderName, dateTime.format(dateFormatter), dateTime.format(timeFormatter), messageContents); } } }