/* * Copyright (C) 2015 Actor LLC. <https://actor.im> */ package im.actor.core.entity; /** * Dialog Builder used for building new Dialog entities or mutating old one */ public class DialogBuilder { private Peer peer; private long sortKey; private String dialogTitle; private Avatar dialogAvatar; private int unreadCount; private long rid; private ContentType messageType; private String text; private int senderId; private long time; private int relatedUid = 0; private Long knownReadDate; private Long knownReceiveDate; private boolean isBot; private boolean isChannel; public DialogBuilder() { } public DialogBuilder(Dialog dialog) { peer = dialog.getPeer(); sortKey = dialog.getSortDate(); dialogTitle = dialog.getDialogTitle(); dialogAvatar = dialog.getDialogAvatar(); unreadCount = dialog.getUnreadCount(); rid = dialog.getRid(); messageType = dialog.getMessageType(); text = dialog.getText(); senderId = dialog.getSenderId(); time = dialog.getDate(); relatedUid = dialog.getRelatedUid(); knownReadDate = dialog.getKnownReadDate(); knownReceiveDate = dialog.getKnownReceiveDate(); isBot = dialog.isBot(); isChannel = dialog.isChannel(); } public DialogBuilder setPeer(Peer peer) { this.peer = peer; return this; } public DialogBuilder setSortKey(long sortKey) { this.sortKey = sortKey; return this; } public DialogBuilder setDialogTitle(String dialogTitle) { this.dialogTitle = dialogTitle; return this; } public DialogBuilder setUnreadCount(int unreadCount) { this.unreadCount = unreadCount; return this; } public DialogBuilder setRid(long rid) { this.rid = rid; return this; } public DialogBuilder setMessageType(ContentType messageType) { this.messageType = messageType; return this; } public DialogBuilder setText(String text) { this.text = text; return this; } public DialogBuilder setSenderId(int senderId) { this.senderId = senderId; return this; } public DialogBuilder setTime(long time) { this.time = time; return this; } public DialogBuilder setRelatedUid(int relatedUid) { this.relatedUid = relatedUid; return this; } public DialogBuilder setDialogAvatar(Avatar avatar) { this.dialogAvatar = avatar; return this; } public DialogBuilder setIsBot(boolean isBot) { this.isBot = isBot; return this; } public DialogBuilder setIsChannel(boolean isChannel) { this.isChannel = isChannel; return this; } public DialogBuilder updateKnownReadDate(Long knownReadDate) { if (knownReadDate != null && (this.knownReadDate == null || this.knownReadDate < knownReadDate)) { this.knownReadDate = knownReadDate; } return this; } public DialogBuilder updateKnownReceiveDate(Long knownReceiveDate) { if (knownReceiveDate != null && (this.knownReceiveDate == null || this.knownReceiveDate < knownReceiveDate)) { this.knownReceiveDate = knownReceiveDate; } return this; } public Dialog createDialog() { return new Dialog(peer, sortKey, dialogTitle, dialogAvatar, isBot, isChannel, unreadCount, rid, messageType, text, senderId, time, relatedUid, knownReadDate, knownReceiveDate); } }