diff --git a/src/main/java/envoy/server/data/GroupMessage.java b/src/main/java/envoy/server/data/GroupMessage.java index 13dcc49..91ba538 100644 --- a/src/main/java/envoy/server/data/GroupMessage.java +++ b/src/main/java/envoy/server/data/GroupMessage.java @@ -5,7 +5,7 @@ import java.util.Map; import javax.persistence.*; -import envoy.data.MessageBuilder; +import envoy.data.Group; /** * Project: envoy-server-standalone
@@ -57,15 +57,7 @@ public class GroupMessage extends Message { */ @Override public envoy.data.GroupMessage toCommon() { - // TODO: Attachment - envoy.data.GroupMessage groupMessage = new MessageBuilder(sender.getID(), recipient.getID(), id).setDate(creationDate) - .setForwarded(forwarded) - .setStatus(status) - .setText(text) - .buildGroupMessage((envoy.data.Group) recipient.toCommon(), memberMessageStatus); - groupMessage.setReceivedDate(receivedDate); - groupMessage.setReadDate(readDate); - return groupMessage; + return prepareBuilder().buildGroupMessage((Group) recipient.toCommon(), memberMessageStatus); } /** diff --git a/src/main/java/envoy/server/data/Message.java b/src/main/java/envoy/server/data/Message.java index 5b81e7d..afe66c7 100755 --- a/src/main/java/envoy/server/data/Message.java +++ b/src/main/java/envoy/server/data/Message.java @@ -6,6 +6,8 @@ import java.time.LocalDateTime; import javax.persistence.*; +import envoy.data.Attachment; +import envoy.data.Attachment.AttachmentType; import envoy.data.Message.MessageStatus; import envoy.data.MessageBuilder; @@ -63,6 +65,7 @@ public class Message { protected String text; protected envoy.data.Message.MessageStatus status; + protected AttachmentType attachmentType; protected byte[] attachment; protected boolean forwarded; @@ -91,7 +94,10 @@ public class Message { sender = persistenceManager.getUserByID(message.getSenderID()); recipient = persistenceManager.getContactByID(message.getRecipientID()); forwarded = message.isForwarded(); - // TODO: Attachment + if (message.hasAttachment()) { + attachment = message.getAttachment().getData(); + attachmentType = message.getAttachment().getType(); + } } /** @@ -102,15 +108,23 @@ public class Message { * @since Envoy Server Standalone v0.1-alpha */ public envoy.data.Message toCommon() { - // TODO: Attachment - envoy.data.Message message = new MessageBuilder(sender.getID(), recipient.getID(), id).setText(text) - .setDate(creationDate) + return prepareBuilder().build(); + } + + /** + * @return a message builder containing the state of this message + * @since Envoy Server Standalone v0.1-beta + */ + MessageBuilder prepareBuilder() { + var builder = new MessageBuilder(sender.getID(), recipient.getID(), id).setText( + text) + .setCreationDate(creationDate) + .setReceivedDate(receivedDate) + .setReadDate(readDate) .setStatus(status) - .setForwarded(forwarded) - .build(); - message.setReceivedDate(receivedDate); - message.setReadDate(readDate); - return message; + .setForwarded(forwarded); + if (attachment != null) builder.setAttachment(new Attachment(attachment, attachmentType)); + return builder; } /** @@ -250,6 +264,18 @@ public class Message { */ public void setAttachment(byte[] attachment) { this.attachment = attachment; } + /** + * @return the attachmentType + * @since Envoy Server Standalone v0.1-beta + */ + public AttachmentType getAttachmentType() { return attachmentType; } + + /** + * @param attachmentType the attachmentType to set + * @since Envoy Server Standalone v0.1-beta + */ + public void setAttachmentType(AttachmentType attachmentType) { this.attachmentType = attachmentType; } + /** * @return whether this message is a forwarded message * @since Envoy Server Standalone v0.1-alpha