2020-04-18 16:28:38 +02:00
|
|
|
package envoy.server.data;
|
|
|
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
2020-06-06 15:42:10 +02:00
|
|
|
import javax.persistence.ElementCollection;
|
|
|
|
import javax.persistence.Entity;
|
2020-04-18 16:28:38 +02:00
|
|
|
|
2020-04-28 20:08:33 +02:00
|
|
|
import envoy.data.MessageBuilder;
|
|
|
|
|
2020-04-18 16:28:38 +02:00
|
|
|
/**
|
|
|
|
* Project: <strong>envoy-server-standalone</strong><br>
|
|
|
|
* File: <strong>GroupMessage.java</strong><br>
|
|
|
|
* Created: <strong>18.04.2020</strong><br>
|
|
|
|
*
|
|
|
|
* @author Maximilian Käfer
|
|
|
|
* @since Envoy Server Standalone v0.1-beta
|
|
|
|
*/
|
|
|
|
|
|
|
|
@Entity
|
2020-06-06 15:42:10 +02:00
|
|
|
public class GroupMessage extends Message {
|
2020-04-18 16:28:38 +02:00
|
|
|
|
|
|
|
@ElementCollection
|
|
|
|
private Map<Long, envoy.data.Message.MessageStatus> memberMessageStatus;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 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) {
|
2020-06-06 15:42:10 +02:00
|
|
|
super(groupMessage);
|
2020-04-18 16:28:38 +02:00
|
|
|
memberMessageStatus = groupMessage.getMemberStatuses();
|
|
|
|
}
|
|
|
|
|
2020-04-28 20:08:33 +02:00
|
|
|
/**
|
|
|
|
* Converts this groupMessage into an instance of
|
|
|
|
* {@link envoy.data.GroupMessage}.
|
|
|
|
*
|
|
|
|
* @return a {@link envoy.data.GroupMessage} containing the same values as this
|
|
|
|
* groupMessage
|
|
|
|
* @since Envoy Server Standalone v0.1-beta
|
|
|
|
*/
|
2020-06-06 15:42:10 +02:00
|
|
|
@Override
|
|
|
|
public envoy.data.GroupMessage toCommon() {
|
2020-04-28 20:08:33 +02:00
|
|
|
// TODO: Attachment
|
2020-06-06 15:42:10 +02:00
|
|
|
envoy.data.GroupMessage groupMessage = new MessageBuilder(sender.getID(), recipient.getID(), id).setDate(creationDate)
|
2020-04-28 20:08:33 +02:00
|
|
|
.setForwarded(forwarded)
|
|
|
|
.setStatus(status)
|
|
|
|
.setText(text)
|
|
|
|
// .setAttachment(attachment) TODO make this work
|
2020-06-06 15:42:10 +02:00
|
|
|
.buildGroupMessage((envoy.data.Group) recipient.toCommon(), memberMessageStatus);
|
2020-04-28 20:08:33 +02:00
|
|
|
groupMessage.setReceivedDate(receivedDate);
|
|
|
|
groupMessage.setReadDate(readDate);
|
|
|
|
return groupMessage;
|
|
|
|
}
|
2020-04-18 16:28:38 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @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;
|
|
|
|
}
|
|
|
|
}
|