Added support for forwarding messages (#17)
* Added message forwarding capability * added newline at EOF for any file not having one at its end
This commit is contained in:
		@@ -78,4 +78,4 @@ public class LoginCredentials implements Serializable {
 | 
			
		||||
	 * @since Envoy Common v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public boolean isRegistration() { return registration; }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -49,6 +49,7 @@ public class Message implements Serializable {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private final long					id, senderId, recipientId;
 | 
			
		||||
	private final boolean				forwarded;
 | 
			
		||||
	private final Date					creationDate;
 | 
			
		||||
	private final String				text;
 | 
			
		||||
	private final MessageAttachment<?>	attachment;
 | 
			
		||||
@@ -71,9 +72,11 @@ public class Message implements Serializable {
 | 
			
		||||
	 * @param text         the text content of the message
 | 
			
		||||
	 * @param attachment   the attachment of the message, if present
 | 
			
		||||
	 * @param status       the current {@link MessageStatus} of the message
 | 
			
		||||
	 * @param forwarded    whether this message was forwarded
 | 
			
		||||
	 * @since Envoy Common v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	Message(long id, long senderId, long recipientId, Date creationDate, String text, MessageAttachment<?> attachment, MessageStatus status) {
 | 
			
		||||
	Message(long id, long senderId, long recipientId, Date creationDate, String text, MessageAttachment<?> attachment, MessageStatus status,
 | 
			
		||||
			boolean forwarded) {
 | 
			
		||||
		this.id				= id;
 | 
			
		||||
		this.senderId		= senderId;
 | 
			
		||||
		this.recipientId	= recipientId;
 | 
			
		||||
@@ -81,6 +84,7 @@ public class Message implements Serializable {
 | 
			
		||||
		this.text			= text;
 | 
			
		||||
		this.attachment		= attachment;
 | 
			
		||||
		this.status			= status;
 | 
			
		||||
		this.forwarded		= forwarded;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
@@ -188,4 +192,10 @@ public class Message implements Serializable {
 | 
			
		||||
		if (status.ordinal() < this.status.ordinal()) throw new IllegalStateException("This message is moving backwards in time");
 | 
			
		||||
		this.status = status;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @return whether this message was forwarded
 | 
			
		||||
	 * @since Envoy common v0.1-beta
 | 
			
		||||
	 */
 | 
			
		||||
	public boolean isForwarded() { return forwarded; }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -25,27 +25,26 @@ public class MessageBuilder {
 | 
			
		||||
	private String					text;
 | 
			
		||||
	private MessageAttachment<?>	attachment;
 | 
			
		||||
	private Message.MessageStatus	status;
 | 
			
		||||
	private boolean					forwarded;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Creates an instance of {@link MessageBuilder} with all mandatory values
 | 
			
		||||
	 * without defaults for the {@link Message} class.
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param senderId    the ID of the user who sends the {@link Message}
 | 
			
		||||
	 * @param recipientId the ID of the user who received the {@link Message}
 | 
			
		||||
	 * @param recipientId the ID of the user who receives the {@link Message}
 | 
			
		||||
	 * @param idGenerator the ID generator used to generate a unique {@link Message}
 | 
			
		||||
	 *                    id
 | 
			
		||||
	 * @since Envoy Common v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public MessageBuilder(long senderId, long recipientId, IdGenerator idGenerator) {
 | 
			
		||||
		this(senderId, recipientId, idGenerator.next());
 | 
			
		||||
	}
 | 
			
		||||
	public MessageBuilder(long senderId, long recipientId, IdGenerator idGenerator) { this(senderId, recipientId, idGenerator.next()); }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Creates an instance of {@link MessageBuilder} with all mandatory values
 | 
			
		||||
	 * without defaults for the {@link Message} class.
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param senderId    the ID of the user who sends the {@link Message}
 | 
			
		||||
	 * @param recipientId the ID of the user who received the {@link Message}
 | 
			
		||||
	 * @param recipientId the ID of the user who receives the {@link Message}
 | 
			
		||||
	 * @param messageId   the ID of the {@link Message}
 | 
			
		||||
	 * @since Envoy Common v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
@@ -55,6 +54,26 @@ public class MessageBuilder {
 | 
			
		||||
		id					= messageId;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * This constructor transforms a given {@link Message} into a new message for a
 | 
			
		||||
	 * new receiver.
 | 
			
		||||
	 * This makes it especially useful in the case of forwarding messages.
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param msg         the message to copy
 | 
			
		||||
	 * @param recipientId the ID of the user who receives the {@link Message}
 | 
			
		||||
	 * @param idGenerator the ID generator used to generate a unique {@link Message}
 | 
			
		||||
	 *                    id
 | 
			
		||||
	 * @since Envoy v0.1-beta
 | 
			
		||||
	 */
 | 
			
		||||
	public MessageBuilder(Message msg, long recipientId, IdGenerator idGenerator) {
 | 
			
		||||
		this(msg.getRecipientId(), recipientId, idGenerator.next());
 | 
			
		||||
		this.attachment		= msg.getAttachment();
 | 
			
		||||
		this.creationDate	= new Date();
 | 
			
		||||
		this.forwarded		= true;
 | 
			
		||||
		this.text			= msg.getText();
 | 
			
		||||
		this.status			= MessageStatus.WAITING;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Creates an instance of {@link Message} with the previously supplied values.
 | 
			
		||||
	 * If a mandatory value is not set, a default value will be used instead:<br>
 | 
			
		||||
@@ -83,7 +102,7 @@ public class MessageBuilder {
 | 
			
		||||
		if (text == null) text = "";
 | 
			
		||||
		if (status == null) status = MessageStatus.WAITING;
 | 
			
		||||
 | 
			
		||||
		return new Message(id, senderId, recipientId, creationDate, text, attachment, status);
 | 
			
		||||
		return new Message(id, senderId, recipientId, creationDate, text, attachment, status, forwarded);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
@@ -126,4 +145,14 @@ public class MessageBuilder {
 | 
			
		||||
		this.status = status;
 | 
			
		||||
		return this;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @param forwarded sets whether this message is a forwarded message or not
 | 
			
		||||
	 * @return this {@link MessageBuilder}
 | 
			
		||||
	 * @since Envoy Common v0.1-beta
 | 
			
		||||
	 */
 | 
			
		||||
	public MessageBuilder setForwarded(boolean forwarded) {
 | 
			
		||||
		this.forwarded = forwarded;
 | 
			
		||||
		return this;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -75,7 +75,7 @@ public class User implements Serializable {
 | 
			
		||||
	 */
 | 
			
		||||
	public User(long id, String name, UserStatus status) {
 | 
			
		||||
		this(id, name);
 | 
			
		||||
		this.status	= status;
 | 
			
		||||
		this.status = status;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
@@ -104,4 +104,4 @@ public class User implements Serializable {
 | 
			
		||||
	 * @since Envoy Common v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public void setStatus(UserStatus status) { this.status = status; }
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -147,4 +147,4 @@ public class SerializationUtils {
 | 
			
		||||
		out.write(objLen);
 | 
			
		||||
		out.write(objBytes);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user