Made id a mandatory field in MessageBuilder
Added support for IdGenerator in the MessageBuilder constructor.
This commit is contained in:
		| @@ -64,20 +64,20 @@ public class Message implements Serializable { | ||||
| 	 * this class provides {@code null} checks and default values for all | ||||
| 	 * properties. | ||||
| 	 * | ||||
| 	 * @param id          unique ID | ||||
| 	 * @param senderId    the ID of the user who sends the message | ||||
| 	 * @param recipientId the ID of the user who receives the message | ||||
| 	 * @param date        the creation date of the message | ||||
| 	 * @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 id           unique ID | ||||
| 	 * @param senderId     the ID of the user who sends the message | ||||
| 	 * @param recipientId  the ID of the user who receives the message | ||||
| 	 * @param creationDate the creation date of the message | ||||
| 	 * @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 | ||||
| 	 * @since Envoy Common v0.2-alpha | ||||
| 	 */ | ||||
| 	Message(long id, long senderId, long recipientId, Date date, String text, MessageAttachment<?> attachment, MessageStatus status) { | ||||
| 	Message(long id, long senderId, long recipientId, Date creationDate, String text, MessageAttachment<?> attachment, MessageStatus status) { | ||||
| 		this.id				= id; | ||||
| 		this.senderId		= senderId; | ||||
| 		this.recipientId	= recipientId; | ||||
| 		creationDate	= date; | ||||
| 		this.creationDate	= creationDate; | ||||
| 		this.text			= text; | ||||
| 		this.attachment		= attachment; | ||||
| 		this.status			= status; | ||||
|   | ||||
| @@ -10,7 +10,7 @@ import envoy.data.Message.MessageStatus; | ||||
|  * Project: <strong>envoy-common</strong><br> | ||||
|  * File: <strong>MessageBuilder.java</strong><br> | ||||
|  * Created: <strong>31.12.2019</strong><br> | ||||
|  *  | ||||
|  * | ||||
|  * @author Kai S. K. Engelbart | ||||
|  * @since Envoy Common v0.2-alpha | ||||
|  */ | ||||
| @@ -21,7 +21,7 @@ public class MessageBuilder { | ||||
|  | ||||
| 	// Properties with default values | ||||
| 	private long					id; | ||||
| 	private Date					date; | ||||
| 	private Date					creationDate; | ||||
| 	private String					text; | ||||
| 	private MessageAttachment<?>	attachment; | ||||
| 	private Message.MessageStatus	status; | ||||
| @@ -32,11 +32,27 @@ public class MessageBuilder { | ||||
| 	 * | ||||
| 	 * @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 idGenerator the ID generator used to generate a unique {@link Message} | ||||
| 	 *                    id | ||||
| 	 * @since Envoy Common v0.2-alpha | ||||
| 	 */ | ||||
| 	public MessageBuilder(long senderId, long recipientId) { | ||||
| 	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 messageId   the ID of the {@link Message} | ||||
| 	 * @since Envoy Common v0.2-alpha | ||||
| 	 */ | ||||
| 	public MessageBuilder(long senderId, long recipientId, long messageId) { | ||||
| 		this.senderId		= senderId; | ||||
| 		this.recipientId	= recipientId; | ||||
| 		id					= messageId; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| @@ -57,36 +73,26 @@ public class MessageBuilder { | ||||
| 	 * <td>{@code MessageStatus.WAITING}</td> | ||||
| 	 * <tr> | ||||
| 	 * </table> | ||||
| 	 *  | ||||
| 	 * | ||||
| 	 * @return a new instance of {@link Message} | ||||
| 	 * @since Envoy Common v0.2-alpha | ||||
| 	 */ | ||||
| 	public Message build() { | ||||
| 		// Supplement default values | ||||
| 		if (date == null) date = new Date(); | ||||
| 		if (creationDate == null) creationDate = new Date(); | ||||
| 		if (text == null) text = ""; | ||||
| 		if (status == null) status = MessageStatus.WAITING; | ||||
|  | ||||
| 		return new Message(id, senderId, recipientId, date, text, attachment, status); | ||||
| 		return new Message(id, senderId, recipientId, creationDate, text, attachment, status); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @param id the unique ID of the {@link Message} to create | ||||
| 	 * @param creationDate the creation date of the {@link Message} to create | ||||
| 	 * @return this {@link MessageBuilder} | ||||
| 	 * @since Envoy Common v0.2-alpha | ||||
| 	 */ | ||||
| 	public MessageBuilder setId(long id) { | ||||
| 		this.id = id; | ||||
| 		return this; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @param date the creation date of the {@link Message} to create | ||||
| 	 * @return this {@link MessageBuilder} | ||||
| 	 * @since Envoy Common v0.2-alpha | ||||
| 	 */ | ||||
| 	public MessageBuilder setDate(Date date) { | ||||
| 		this.date = date; | ||||
| 	public MessageBuilder setDate(Date creationDate) { | ||||
| 		this.creationDate = creationDate; | ||||
| 		return this; | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user