Messaging-App / src / Message.java
Message.java
Raw
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);
        }

    }
}