public Builder mergeFrom(
                im.turms.server.common.access.client.dto.model.message.Message other) {
            if (other == im.turms.server.common.access.client.dto.model.message.Message
                    .getDefaultInstance()) {
                return this;
            }
            if (other.hasId()) {
                setId(other.getId());
            }
            if (other.hasDeliveryDate()) {
                setDeliveryDate(other.getDeliveryDate());
            }
            if (other.hasModificationDate()) {
                setModificationDate(other.getModificationDate());
            }
            if (other.hasText()) {
                text_ = other.text_;
                bitField0_ |= 0x00000008;
                onChanged();
            }
            if (other.hasSenderId()) {
                setSenderId(other.getSenderId());
            }
            if (other.hasGroupId()) {
                setGroupId(other.getGroupId());
            }
            if (other.hasIsSystemMessage()) {
                setIsSystemMessage(other.getIsSystemMessage());
            }
            if (other.hasRecipientId()) {
                setRecipientId(other.getRecipientId());
            }
            if (!other.records_.isEmpty()) {
                if (records_.isEmpty()) {
                    records_ = other.records_;
                    records_.makeImmutable();
                    bitField0_ |= 0x00000100;
                } else {
                    ensureRecordsIsMutable();
                    records_.addAll(other.records_);
                }
                onChanged();
            }
            if (other.hasSequenceId()) {
                setSequenceId(other.getSequenceId());
            }
            if (other.hasPreMessageId()) {
                setPreMessageId(other.getPreMessageId());
            }
            if (reactionGroupsBuilder_ == null) {
                if (!other.reactionGroups_.isEmpty()) {
                    if (reactionGroups_.isEmpty()) {
                        reactionGroups_ = other.reactionGroups_;
                        bitField0_ &= ~0x00000800;
                    } else {
                        ensureReactionGroupsIsMutable();
                        reactionGroups_.addAll(other.reactionGroups_);
                    }
                    onChanged();
                }
            } else {
                if (!other.reactionGroups_.isEmpty()) {
                    if (reactionGroupsBuilder_.isEmpty()) {
                        reactionGroupsBuilder_.dispose();
                        reactionGroupsBuilder_ = null;
                        reactionGroups_ = other.reactionGroups_;
                        bitField0_ &= ~0x00000800;
                        reactionGroupsBuilder_ =
                                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                                        ? getReactionGroupsFieldBuilder()
                                        : null;
                    } else {
                        reactionGroupsBuilder_.addAllMessages(other.reactionGroups_);
                    }
                }
            }
            if (customAttributesBuilder_ == null) {
                if (!other.customAttributes_.isEmpty()) {
                    if (customAttributes_.isEmpty()) {
                        customAttributes_ = other.customAttributes_;
                        bitField0_ &= ~0x00001000;
                    } else {
                        ensureCustomAttributesIsMutable();
                        customAttributes_.addAll(other.customAttributes_);
                    }
                    onChanged();
                }
            } else {
                if (!other.customAttributes_.isEmpty()) {
                    if (customAttributesBuilder_.isEmpty()) {
                        customAttributesBuilder_.dispose();
                        customAttributesBuilder_ = null;
                        customAttributes_ = other.customAttributes_;
                        bitField0_ &= ~0x00001000;
                        customAttributesBuilder_ =
                                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders
                                        ? getCustomAttributesFieldBuilder()
                                        : null;
                    } else {
                        customAttributesBuilder_.addAllMessages(other.customAttributes_);
                    }
                }
            }
            this.mergeUnknownFields(other.getUnknownFields());
            onChanged();
            return this;
        }
Protobuf type {@code im.turms.proto.Message}
turms-server-common/src/main/java/im/turms/server/common/access/client/dto/model/message/Message.java