diff --git a/src/main/java/envoy/data/Message.java b/src/main/java/envoy/data/Message.java index ff0414c..5d7ee33 100644 --- a/src/main/java/envoy/data/Message.java +++ b/src/main/java/envoy/data/Message.java @@ -136,7 +136,7 @@ public class Message implements Serializable { * @return the date at which this message was created * @since Envoy Common v0.2-alpha */ - public Date getDate() { return creationDate; } + public Date getCreationDate() { return creationDate; } /** * @return the date at which the message has been received by the sender @@ -145,7 +145,6 @@ public class Message implements Serializable { public Date getReceivedDate() { return receivedDate; } /** - * * @param receivedDate the date at which the message has been received by the * sender * @since Envoy Common v0.2-alpha @@ -181,4 +180,13 @@ public class Message implements Serializable { * @since Envoy Common v0.2-alpha */ public MessageStatus getStatus() { return status; } + + /** + * @param status the new {@link MessageStatus}, if permitted + * @since Envoy Common v0.2-alpha + */ + public void setStatus(MessageStatus status) { + if (status.ordinal() < this.status.ordinal()) throw new IllegalStateException("This message is moving backwards in time"); + else this.status = status; + } } \ No newline at end of file diff --git a/src/main/java/envoy/data/MessageAttachment.java b/src/main/java/envoy/data/MessageAttachment.java index ee4db64..23a2c2e 100644 --- a/src/main/java/envoy/data/MessageAttachment.java +++ b/src/main/java/envoy/data/MessageAttachment.java @@ -1,7 +1,10 @@ package envoy.data; +import java.io.IOException; import java.io.Serializable; +import envoy.util.SerializationUtils; + /** * This interface should be used for any type supposed to be a {@link Message} * attachment (i.e. images or sound).
@@ -14,11 +17,27 @@ import java.io.Serializable; * @param the type of this message attachment * @since Envoy Common v0.2-alpha */ -public interface MessageAttachment extends Serializable { +public class MessageAttachment implements Serializable { + + private static final long serialVersionUID = 262683855157198013L; + private T value; /** * @return the type implementing this interface * @since Envoy Common v0.2-alpha */ - T get(); + T getValue() { return value; } + + /** + * @return the {@link MessageAttachment} as a byte array + * @throws IOException if the serialization failed + * @since Envoy Common v0.2-alpha + */ + byte[] toByteArray() throws IOException { return SerializationUtils.writeToByteArray(this); } + + /** + * @param value the value to set + * @since Envoy Common v0.2-alpha + */ + public void setValue(T value) { this.value = value; } } diff --git a/src/main/java/envoy/event/MessageStatusChangeEvent.java b/src/main/java/envoy/event/MessageStatusChangeEvent.java index ac532fa..b0aea1f 100644 --- a/src/main/java/envoy/event/MessageStatusChangeEvent.java +++ b/src/main/java/envoy/event/MessageStatusChangeEvent.java @@ -14,22 +14,22 @@ import envoy.data.Message; */ public class MessageStatusChangeEvent implements Event { - private final long messageId; - private final Message.MessageStatus messageStatus; + private final long id; + private final Message.MessageStatus status; private final Date date; /** * Initializes a {@link MessageStatusChangeEvent}. * - * @param messageId the ID of the {@link Message} this event is related to - * @param messageStatus the status of the {@link Message} this event is related + * @param id the ID of the {@link Message} this event is related to + * @param status the status of the {@link Message} this event is related * to * @param date the date at which the MessageStatus change occurred * @since Envoy Common v0.2-alpha */ - public MessageStatusChangeEvent(long messageId, Message.MessageStatus messageStatus, Date date) { - this.messageId = messageId; - this.messageStatus = messageStatus; + public MessageStatusChangeEvent(long id, Message.MessageStatus status, Date date) { + this.id = id; + this.status = status; this.date = date; } @@ -38,16 +38,16 @@ public class MessageStatusChangeEvent implements Event { * @since Envoy Common v0.2-alpha */ @Override - public Message.MessageStatus get() { return messageStatus; } + public Message.MessageStatus get() { return status; } /** * @return the ID of the {@link Message} this event is related to * @since Envoy Common v0.2-alpha */ - public long getMessageId() { return messageId; } + public long getId() { return id; } /** - * @return the date at which the messageStatus change occurred + * @return the date at which the status change occurred * @since Envoy Common v0.2-alpha */ public Date getDate() { return date; }