This repository has been archived on 2021-12-05. You can view files and clone it, but cannot push or open issues or pull requests.
envoy/src/main/java/envoy/server/data/GroupMessage.java

213 lines
5.7 KiB
Java

package envoy.server.data;
import java.util.Date;
import java.util.Map;
import javax.persistence.*;
/**
* Project: <strong>envoy-server-standalone</strong><br>
* File: <strong>GroupMessage.java</strong><br>
* Created: <strong>18.04.2020</strong><br>
*
* @author Maximilian K&auml;fer
* @since Envoy Server Standalone v0.1-beta
*/
@Entity
@Table(name = "group_messages")
public class GroupMessage {
@Id
private long id;
@ManyToOne(cascade = CascadeType.PERSIST)
private User sender;
@ManyToOne(cascade = CascadeType.PERSIST)
private Group group;
@Temporal(TemporalType.TIMESTAMP)
private Date creationDate;
@Temporal(TemporalType.TIMESTAMP)
private Date receivedDate;
@Temporal(TemporalType.TIMESTAMP)
private Date readDate;
@ElementCollection
private Map<Long, envoy.data.Message.MessageStatus> memberMessageStatus;
private String text;
private envoy.data.Message.MessageStatus status;
private byte[] attachment;
private boolean forwarded;
/**
* The constructor for a database object.
*
* @since Envoy Server Standalone v0.1-beta
*/
public GroupMessage() {}
/**
* Constructs a database groupMessage from a common groupMessage.
*
* @param groupMessage the {@link envoy.data.GroupMessage} to convert into a
* database {@link GroupMessage}
* @since Envoy Server Standalone v0.1-beta
*/
public GroupMessage(envoy.data.GroupMessage groupMessage) {
PersistenceManager persistenceManager = PersistenceManager.getInstance();
id = groupMessage.getID();
status = groupMessage.getStatus();
text = groupMessage.getText();
creationDate = groupMessage.getCreationDate();
receivedDate = groupMessage.getReceivedDate();
readDate = groupMessage.getReadDate();
sender = persistenceManager.getUserByID(groupMessage.getSenderID());
group = persistenceManager.getGroupByID(groupMessage.getRecipientID());
forwarded = groupMessage.isForwarded();
memberMessageStatus = groupMessage.getMemberStatuses();
// TODO: attachment = groupMessage.getAttachment().toByteArray();DOES NOT WORK
// YET
}
// TODO Implement GroupMessageBuilder and add toCommonGroupMessage method here
/**
* @return the id
* @since Envoy Server Standalone v0.1-beta
*/
public long getId() { return id; }
/**
* @param id the id to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setId(long id) { this.id = id; }
/**
* @return the sender
* @since Envoy Server Standalone v0.1-beta
*/
public User getSender() { return sender; }
/**
* @param sender the sender to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setSender(User sender) { this.sender = sender; }
/**
* @return the group
* @since Envoy Server Standalone v0.1-beta
*/
public Group getGroup() { return group; }
/**
* @param group the group to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setGroup(Group group) { this.group = group; }
/**
* @return the creationDate
* @since Envoy Server Standalone v0.1-beta
*/
public Date getCreationDate() { return creationDate; }
/**
* @param creationDate the creationDate to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setCreationDate(Date creationDate) { this.creationDate = creationDate; }
/**
* @return the receivedDate
* @since Envoy Server Standalone v0.1-beta
*/
public Date getReceivedDate() { return receivedDate; }
/**
* @param receivedDate the receivedDate to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setReceivedDate(Date receivedDate) { this.receivedDate = receivedDate; }
/**
* @return the readDate
* @since Envoy Server Standalone v0.1-beta
*/
public Date getReadDate() { return readDate; }
/**
* @param readDate the readDate to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setReadDate(Date readDate) { this.readDate = readDate; }
/**
* @return the memberMessageStatus
* @since Envoy Server Standalone v0.1-beta
*/
public Map<Long, envoy.data.Message.MessageStatus> getMemberMessageStatus() { return memberMessageStatus; }
/**
* @param memberMessageStatus the memberMessageStatus to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setMemberMessageStatus(Map<Long, envoy.data.Message.MessageStatus> memberMessageStatus) {
this.memberMessageStatus = memberMessageStatus;
}
/**
* @return the text
* @since Envoy Server Standalone v0.1-beta
*/
public String getText() { return text; }
/**
* @param text the text to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setText(String text) { this.text = text; }
/**
* @return the status
* @since Envoy Server Standalone v0.1-beta
*/
public envoy.data.Message.MessageStatus getStatus() { return status; }
/**
* @param status the status to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setStatus(envoy.data.Message.MessageStatus status) { this.status = status; }
/**
* @return the attachment
* @since Envoy Server Standalone v0.1-beta
*/
public byte[] getAttachment() { return attachment; }
/**
* @param attachment the attachment to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setAttachment(byte[] attachment) { this.attachment = attachment; }
/**
* @return the forwarded
* @since Envoy Server Standalone v0.1-beta
*/
public boolean isForwarded() { return forwarded; }
/**
* @param forwarded the forwarded to set
* @since Envoy Server Standalone v0.1-beta
*/
public void setForwarded(boolean forwarded) { this.forwarded = forwarded; }
}