package envoy.client; import java.io.Serializable; import envoy.client.ui.list.ComponentListModel; import envoy.data.Message; import envoy.data.User; /** * Represents a chat between two {@link User}s
* as a list of {@link Message} objects. *
* Project: envoy-client
* File: Chat.java
* Created: 19 Oct 2019
* * @author Maximilian Käfer * @author Leon Hofmeister * @author Kai S. K. Engelbart * @since Envoy v0.1-alpha */ public class Chat implements Serializable { private static final long serialVersionUID = -7751248474547242056L; private User recipient; private ComponentListModel model = new ComponentListModel<>(); /** * Provides the list of messages that the recipient receives.
* Saves the Messages in the corresponding chat at that Point. * * @param recipient the user who receives the messages * @since Envoy v0.1-alpha */ public Chat(User recipient) { this.recipient = recipient; } /** * @return the recipient of a message * @since Envoy v0.1-alpha */ public User getRecipient() { return recipient; } /** * Adds the received message at the current Point in the current chat * * @param message the message to add in said chat * @since Envoy v0.1-alpha */ public void appendMessage(Message message) { model.add(message); } /** * @return all messages in the current chat * @since Envoy v0.1-alpha */ public ComponentListModel getModel() { return model; } }