From be7459d18b0b64948b881854756e15c738119341 Mon Sep 17 00:00:00 2001 From: delvh Date: Wed, 1 Jan 2020 19:16:40 +0100 Subject: [PATCH] Improved Message.java and User.java to remain compatible with database --- src/main/java/envoy/data/Message.java | 80 +++++++++++++++++++++++++-- src/main/java/envoy/data/User.java | 64 ++++++++++++++------- 2 files changed, 118 insertions(+), 26 deletions(-) diff --git a/src/main/java/envoy/data/Message.java b/src/main/java/envoy/data/Message.java index ddbfba2..5ec1c03 100644 --- a/src/main/java/envoy/data/Message.java +++ b/src/main/java/envoy/data/Message.java @@ -48,11 +48,11 @@ public class Message implements Serializable { READ } - private final long id, senderId, recipientId; - private final transient User sender, recipient; - private final Date date; - private final String text; - private final MessageAttachment attachment; + private long id, senderId, recipientId; + private transient User sender, recipient; + private Date date; + private String text; + private MessageAttachment attachment; private MessageStatus status; @@ -168,4 +168,74 @@ public class Message implements Serializable { * @since Envoy Common v0.2-alpha */ public MessageStatus getStatus() { return status; } + + /** + * Only used for Hibernate. Please do not use. + * + * @param id the id to set + * @since Envoy Common v0.2-alpha + */ + public void setId(long id) { this.id = id; } + + /** + * Only used for Hibernate. Please do not use. + * + * @param senderId the senderId to set + * @since Envoy Common v0.2-alpha + */ + public void setSenderId(long senderId) { this.senderId = senderId; } + + /** + * Only used for Hibernate. Please do not use. + * + * @param recipientId the recipientId to set + * @since Envoy Common v0.2-alpha + */ + public void setRecipientId(long recipientId) { this.recipientId = recipientId; } + + /** + * Only used for Hibernate. Please do not use. + * + * @param sender the sender to set + * @since Envoy Common v0.2-alpha + */ + public void setSender(User sender) { this.sender = sender; } + + /** + * Only used for Hibernate. Please do not use. + * + * @param recipient the recipient to set + * @since Envoy Common v0.2-alpha + */ + public void setRecipient(User recipient) { this.recipient = recipient; } + + /** + * Only used for Hibernate. Please do not use. + * + * @param date the date to set + * @since Envoy Common v0.2-alpha + */ + public void setDate(Date date) { this.date = date; } + + /** + * Only used for Hibernate. Please do not use. + * + * @param text the text to set + * @since Envoy Common v0.2-alpha + */ + public void setText(String text) { this.text = text; } + + /** + * Only used for Hibernate. Please do not use. + * + * @param attachment the attachment to set + * @since Envoy Common v0.2-alpha + */ + public void setAttachment(MessageAttachment attachment) { this.attachment = attachment; } + + /** + * @param status the status to set + * @since Envoy Common v0.2-alpha + */ + public void setStatus(MessageStatus status) { this.status = status; } } \ No newline at end of file diff --git a/src/main/java/envoy/data/User.java b/src/main/java/envoy/data/User.java index d5c0bbc..2049e75 100644 --- a/src/main/java/envoy/data/User.java +++ b/src/main/java/envoy/data/User.java @@ -1,8 +1,7 @@ package envoy.data; import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; +import java.util.Date; /** * Represents a unique user with a unique, numeric ID, a name and a current @@ -46,11 +45,10 @@ public class User implements Serializable { OFFLINE; } - private final long id; - private final String name; - private final List contacts = new ArrayList<>(); - - private UserStatus status; + private long id; + private String name; + private UserStatus status; + private Date lastOnline; private static final long serialVersionUID = 3530947374856708236L; @@ -60,46 +58,70 @@ public class User implements Serializable { * * @param id unique ID * @param name user name - * @since Envoy Client v0.2-alpha + * @since Envoy Common v0.2-alpha */ public User(long id, String name) { this.id = id; this.name = name; - status = UserStatus.OFFLINE; + status = UserStatus.ONLINE; + setLastOnline(new Date()); } + /** + * Used to let Hibernate modify the values of an {@link User} + * + * @since Envoy Common v0.2-alpha + */ + public User() {} + @Override public String toString() { return String.format("User[id=%d,name=%s,status=%s]", id, name, status); } /** * @return the ID of this {@link User} - * @since Envoy Client v0.2-alpha + * @since Envoy Common v0.2-alpha */ public long getId() { return id; } /** * @return the name of this {@link User} - * @since Envoy Client v0.2-alpha + * @since Envoy Common v0.2-alpha */ public String getName() { return name; } - /** - * @return a list of all users this user can send messages to - * @since Envoy Client v0.2-alpha - */ - public List getContacts() { return contacts; } - /** * @return the current status of this user - * @since Envoy Client v0.2-alpha + * @since Envoy Common v0.2-alpha */ public UserStatus getStatus() { return status; } /** - * Sets the current status of this user - * * @param status the status to set - * @since Envoy Client v0.2-alpha + * @since Envoy Common v0.2-alpha */ public void setStatus(UserStatus status) { this.status = status; } + + /** + * @param id the id to set + * @since Envoy Common v0.2-alpha + */ + public void setId(long id) { this.id = id; } + + /** + * @param name the name to set + * @since Envoy Common v0.2-alpha + */ + public void setName(String name) { this.name = name; } + + /** + * @return the lastOnline + * @since Envoy Common v0.2-alpha + */ + public Date getLastOnline() { return lastOnline; } + + /** + * @param lastOnline the lastOnline to set + * @since Envoy Common v0.2-alpha + */ + public void setLastOnline(Date lastOnline) { this.lastOnline = lastOnline; } } \ No newline at end of file