mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-16 08:34:53 +02:00
Refactoring and commenting
This commit is contained in:
parent
40a14abe02
commit
1767a24fde
|
@ -11,7 +11,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import org.mercury_im.messenger.R;
|
import org.mercury_im.messenger.R;
|
||||||
import org.mercury_im.messenger.entity.message.Message;
|
import org.mercury_im.messenger.entity.message.Message;
|
||||||
import org.mercury_im.messenger.entity.message.content.TextMessageContent;
|
import org.mercury_im.messenger.entity.message.content.TextPayload;
|
||||||
import org.mercury_im.messenger.ui.util.MessageBackgroundDrawable;
|
import org.mercury_im.messenger.ui.util.MessageBackgroundDrawable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -55,7 +55,7 @@ public class MessagesRecyclerViewAdapter extends RecyclerView.Adapter<MessagesRe
|
||||||
// } else {
|
// } else {
|
||||||
// holder.body.setBackgroundResource(background.getOutgoingDrawable());
|
// holder.body.setBackgroundResource(background.getOutgoingDrawable());
|
||||||
// }
|
// }
|
||||||
holder.body.setText(((TextMessageContent) message.getMessagePayloads().get(0).getMessageContents().get(0)).getBody());
|
holder.body.setText(((TextPayload) message.getMessagePayloads().get(0).getMessageContents().get(0)).getBody());
|
||||||
holder.body.requestLayout();
|
holder.body.requestLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
package org.mercury_im.messenger.data.di;
|
|
||||||
|
|
||||||
import org.mercury_im.messenger.data.repository.XmppAccountRepository;
|
|
||||||
import org.mercury_im.messenger.data.repository.XmppDirectChatRepository;
|
|
||||||
import org.mercury_im.messenger.data.repository.XmppGroupChatRepository;
|
|
||||||
import org.mercury_im.messenger.data.repository.XmppPeerRepository;
|
|
||||||
|
|
||||||
import dagger.Component;
|
|
||||||
|
|
||||||
@Component(modules = {
|
|
||||||
RepositoryModule.class
|
|
||||||
})
|
|
||||||
public interface RepositoryComponent {
|
|
||||||
|
|
||||||
void inject(XmppAccountRepository accountRepository);
|
|
||||||
|
|
||||||
void inject(XmppPeerRepository peerRepository);
|
|
||||||
|
|
||||||
void inject(XmppDirectChatRepository directChatRepository);
|
|
||||||
|
|
||||||
void inject(XmppGroupChatRepository groupChatRepository);
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,40 +1,39 @@
|
||||||
package org.mercury_im.messenger.data.mapping;
|
package org.mercury_im.messenger.data.mapping;
|
||||||
|
|
||||||
import org.mercury_im.messenger.data.enums.MessageContentType;
|
import org.mercury_im.messenger.data.model.MessagePayloadModel;
|
||||||
import org.mercury_im.messenger.data.model.MessageContentModel;
|
import org.mercury_im.messenger.entity.message.content.Payload;
|
||||||
import org.mercury_im.messenger.entity.message.content.MessageContent;
|
import org.mercury_im.messenger.entity.message.content.TextPayload;
|
||||||
import org.mercury_im.messenger.entity.message.content.TextMessageContent;
|
|
||||||
|
|
||||||
import static org.mercury_im.messenger.data.enums.MessageContentType.body;
|
import static org.mercury_im.messenger.data.enums.MessageContentType.body;
|
||||||
|
|
||||||
public class MessageContentMapping implements Mapping<MessageContent, MessageContentModel> {
|
public class MessageContentMapping implements Mapping<Payload, MessagePayloadModel> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MessageContentModel entityToModel(MessageContent entity, MessageContentModel model) {
|
public MessagePayloadModel entityToModel(Payload entity, MessagePayloadModel model) {
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (model == null) {
|
if (model == null) {
|
||||||
model = new MessageContentModel();
|
model = new MessagePayloadModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entity instanceof TextMessageContent) {
|
if (entity instanceof TextPayload) {
|
||||||
model.setType(body);
|
model.setType(body);
|
||||||
model.setBody(((TextMessageContent) entity).getBody());
|
model.setBody(((TextPayload) entity).getBody());
|
||||||
}
|
}
|
||||||
// else if (...)
|
// else if (...)
|
||||||
return model;
|
return model;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MessageContent modelToEntity(MessageContentModel model, MessageContent entity) {
|
public Payload modelToEntity(MessagePayloadModel model, Payload entity) {
|
||||||
if (model == null) {
|
if (model == null) {
|
||||||
model = new MessageContentModel();
|
model = new MessagePayloadModel();
|
||||||
}
|
}
|
||||||
switch (model.getType()) {
|
switch (model.getType()) {
|
||||||
case body:
|
case body:
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
TextMessageContent body = new TextMessageContent();
|
TextPayload body = new TextPayload();
|
||||||
body.setId(model.getId());
|
body.setId(model.getId());
|
||||||
body.setBody(model.getBody());
|
body.setBody(model.getBody());
|
||||||
entity = body;
|
entity = body;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package org.mercury_im.messenger.data.mapping;
|
package org.mercury_im.messenger.data.mapping;
|
||||||
|
|
||||||
import org.mercury_im.messenger.data.model.MessageModel;
|
import org.mercury_im.messenger.data.model.MessageModel;
|
||||||
import org.mercury_im.messenger.data.model.MessagePayloadModel;
|
import org.mercury_im.messenger.data.model.MessagePayloadContainerModel;
|
||||||
import org.mercury_im.messenger.entity.message.IMessage;
|
import org.mercury_im.messenger.entity.message.IMessage;
|
||||||
import org.mercury_im.messenger.entity.message.Message;
|
import org.mercury_im.messenger.entity.message.Message;
|
||||||
import org.mercury_im.messenger.entity.message.MessagePayload;
|
import org.mercury_im.messenger.entity.message.PayloadContainer;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
@ -30,8 +30,8 @@ public class MessageMapping implements Mapping<Message, MessageModel> {
|
||||||
model.setTimestamp(entity.getTimestamp());
|
model.setTimestamp(entity.getTimestamp());
|
||||||
|
|
||||||
model.getPayloads().clear();
|
model.getPayloads().clear();
|
||||||
for (MessagePayload payload : entity.getMessagePayloads()) {
|
for (PayloadContainer payload : entity.getMessagePayloads()) {
|
||||||
MessagePayloadModel payloadModel = messagePayloadMapping.entityToModel(payload, new MessagePayloadModel());
|
MessagePayloadContainerModel payloadModel = messagePayloadMapping.entityToModel(payload, new MessagePayloadContainerModel());
|
||||||
payloadModel.setMessage(model);
|
payloadModel.setMessage(model);
|
||||||
model.getPayloads().add(payloadModel);
|
model.getPayloads().add(payloadModel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
package org.mercury_im.messenger.data.mapping;
|
package org.mercury_im.messenger.data.mapping;
|
||||||
|
|
||||||
import org.mercury_im.messenger.data.model.MessageContentModel;
|
|
||||||
import org.mercury_im.messenger.data.model.MessagePayloadModel;
|
import org.mercury_im.messenger.data.model.MessagePayloadModel;
|
||||||
import org.mercury_im.messenger.entity.message.IMessagePayload;
|
import org.mercury_im.messenger.data.model.MessagePayloadContainerModel;
|
||||||
import org.mercury_im.messenger.entity.message.MessagePayload;
|
import org.mercury_im.messenger.entity.message.IPayloadContainer;
|
||||||
import org.mercury_im.messenger.entity.message.content.MessageContent;
|
import org.mercury_im.messenger.entity.message.PayloadContainer;
|
||||||
|
import org.mercury_im.messenger.entity.message.content.Payload;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
public class MessagePayloadMapping implements Mapping<MessagePayload, MessagePayloadModel> {
|
public class MessagePayloadMapping implements Mapping<PayloadContainer, MessagePayloadContainerModel> {
|
||||||
|
|
||||||
private final MessageContentMapping messageContentMapping;
|
private final MessageContentMapping messageContentMapping;
|
||||||
|
|
||||||
|
@ -21,17 +21,17 @@ public class MessagePayloadMapping implements Mapping<MessagePayload, MessagePay
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MessagePayloadModel entityToModel(MessagePayload entity, MessagePayloadModel model) {
|
public MessagePayloadContainerModel entityToModel(PayloadContainer entity, MessagePayloadContainerModel model) {
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (model == null) {
|
if (model == null) {
|
||||||
model = new MessagePayloadModel();
|
model = new MessagePayloadContainerModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
model.getContents().clear();
|
model.getContents().clear();
|
||||||
for (MessageContent contentEntity : entity.getMessageContents()) {
|
for (Payload contentEntity : entity.getMessageContents()) {
|
||||||
MessageContentModel contentModel = messageContentMapping.entityToModel(contentEntity, new MessageContentModel());
|
MessagePayloadModel contentModel = messageContentMapping.entityToModel(contentEntity, new MessagePayloadModel());
|
||||||
contentModel.setPayload(model);
|
contentModel.setPayload(model);
|
||||||
model.getContents().add(contentModel);
|
model.getContents().add(contentModel);
|
||||||
}
|
}
|
||||||
|
@ -40,19 +40,19 @@ public class MessagePayloadMapping implements Mapping<MessagePayload, MessagePay
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MessagePayload modelToEntity(MessagePayloadModel model, MessagePayload entity) {
|
public PayloadContainer modelToEntity(MessagePayloadContainerModel model, PayloadContainer entity) {
|
||||||
if (model == null) {
|
if (model == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
entity = new IMessagePayload();
|
entity = new IPayloadContainer();
|
||||||
}
|
}
|
||||||
|
|
||||||
entity.setId(model.getId());
|
entity.setId(model.getId());
|
||||||
|
|
||||||
List<MessageContent> contents = new ArrayList<>(model.getContents().size());
|
List<Payload> contents = new ArrayList<>(model.getContents().size());
|
||||||
for (MessageContentModel contentModel : model.getContents()) {
|
for (MessagePayloadModel contentModel : model.getContents()) {
|
||||||
MessageContent contentEntity = messageContentMapping.modelToEntity(contentModel, null);
|
Payload contentEntity = messageContentMapping.modelToEntity(contentModel, null);
|
||||||
contents.add(contentEntity);
|
contents.add(contentEntity);
|
||||||
}
|
}
|
||||||
entity.setMessageContents(contents);
|
entity.setMessageContents(contents);
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
package org.mercury_im.messenger.data.model;
|
|
||||||
|
|
||||||
import org.mercury_im.messenger.data.enums.MessageContentType;
|
|
||||||
|
|
||||||
import io.requery.Column;
|
|
||||||
import io.requery.Entity;
|
|
||||||
import io.requery.Generated;
|
|
||||||
import io.requery.Key;
|
|
||||||
import io.requery.ManyToOne;
|
|
||||||
import io.requery.Table;
|
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Table(name = "message_contents")
|
|
||||||
public abstract class AbstractMessageContentModel {
|
|
||||||
|
|
||||||
@Key @Generated
|
|
||||||
long id;
|
|
||||||
|
|
||||||
@ManyToOne
|
|
||||||
MessagePayloadModel payload;
|
|
||||||
|
|
||||||
@Column
|
|
||||||
String body;
|
|
||||||
|
|
||||||
@Column(nullable = false)
|
|
||||||
MessageContentType type;
|
|
||||||
}
|
|
|
@ -28,7 +28,7 @@ public abstract class AbstractMessageModel implements Persistable {
|
||||||
Date timestamp;
|
Date timestamp;
|
||||||
|
|
||||||
@OneToMany
|
@OneToMany
|
||||||
Set<MessagePayloadModel> payloads;
|
Set<MessagePayloadContainerModel> payloads;
|
||||||
|
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
String legacyId;
|
String legacyId;
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
package org.mercury_im.messenger.data.model;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import io.requery.Entity;
|
||||||
|
import io.requery.Generated;
|
||||||
|
import io.requery.Key;
|
||||||
|
import io.requery.ManyToOne;
|
||||||
|
import io.requery.OneToMany;
|
||||||
|
import io.requery.Table;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "msg_payload_containers")
|
||||||
|
public abstract class AbstractMessagePayloadContainerModel {
|
||||||
|
|
||||||
|
@Key @Generated
|
||||||
|
long id;
|
||||||
|
|
||||||
|
@ManyToOne
|
||||||
|
MessageModel message;
|
||||||
|
|
||||||
|
@OneToMany
|
||||||
|
Set<MessagePayloadModel> contents;
|
||||||
|
}
|
|
@ -1,24 +1,27 @@
|
||||||
package org.mercury_im.messenger.data.model;
|
package org.mercury_im.messenger.data.model;
|
||||||
|
|
||||||
import java.util.Set;
|
import org.mercury_im.messenger.data.enums.MessageContentType;
|
||||||
|
|
||||||
|
import io.requery.Column;
|
||||||
import io.requery.Entity;
|
import io.requery.Entity;
|
||||||
import io.requery.Generated;
|
import io.requery.Generated;
|
||||||
import io.requery.Key;
|
import io.requery.Key;
|
||||||
import io.requery.ManyToOne;
|
import io.requery.ManyToOne;
|
||||||
import io.requery.OneToMany;
|
|
||||||
import io.requery.Table;
|
import io.requery.Table;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "message_payloads")
|
@Table(name = "msg_payloads")
|
||||||
public abstract class AbstractMessagePayloadModel {
|
public abstract class AbstractMessagePayloadModel {
|
||||||
|
|
||||||
@Key @Generated
|
@Key @Generated
|
||||||
long id;
|
long id;
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
MessageModel message;
|
MessagePayloadContainerModel payload;
|
||||||
|
|
||||||
@OneToMany
|
@Column
|
||||||
Set<MessageContentModel> contents;
|
String body;
|
||||||
|
|
||||||
|
@Column(nullable = false)
|
||||||
|
MessageContentType type;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,8 @@ package org.mercury_im.messenger.entity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* User Account entity.
|
* User Account entity.
|
||||||
|
*
|
||||||
|
* An implementation of this entity can be found as {@link IAccount}.
|
||||||
*/
|
*/
|
||||||
public interface Account {
|
public interface Account {
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,11 @@ package org.mercury_im.messenger.entity.chat;
|
||||||
|
|
||||||
import org.mercury_im.messenger.entity.Account;
|
import org.mercury_im.messenger.entity.Account;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generic interface defining shared properties of chats.
|
||||||
|
*
|
||||||
|
* Child interfaces of {@link Chat} are {@link DirectChat} and {@link GroupChat}.
|
||||||
|
*/
|
||||||
public interface Chat {
|
public interface Chat {
|
||||||
|
|
||||||
long getId();
|
long getId();
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
package org.mercury_im.messenger.entity.chat;
|
package org.mercury_im.messenger.entity.chat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface that describes typical preferences in the context of a chat.
|
||||||
|
*
|
||||||
|
* An implementation can be found as {@link IChatPreferences}.
|
||||||
|
*/
|
||||||
public interface ChatPreferences {
|
public interface ChatPreferences {
|
||||||
|
|
||||||
NotificationPreferences getNotificationPreference();
|
NotificationPreferences getNotificationPreference();
|
||||||
|
|
|
@ -2,6 +2,11 @@ package org.mercury_im.messenger.entity.chat;
|
||||||
|
|
||||||
import org.mercury_im.messenger.entity.contact.Peer;
|
import org.mercury_im.messenger.entity.contact.Peer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface that describes a direct chat between the user and another one.
|
||||||
|
*
|
||||||
|
* An implementation can be found in {@link IDirectChat}.
|
||||||
|
*/
|
||||||
public interface DirectChat extends Chat {
|
public interface DirectChat extends Chat {
|
||||||
|
|
||||||
Peer getPeer();
|
Peer getPeer();
|
||||||
|
|
|
@ -4,6 +4,11 @@ import org.mercury_im.messenger.entity.contact.Peer;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An interface that describes a group chat entity.
|
||||||
|
*
|
||||||
|
* An implementation can be found as {@link IGroupChat}.
|
||||||
|
*/
|
||||||
public interface GroupChat extends Chat {
|
public interface GroupChat extends Chat {
|
||||||
|
|
||||||
Set<Peer> getParticipants();
|
Set<Peer> getParticipants();
|
||||||
|
|
|
@ -5,6 +5,8 @@ import org.mercury_im.messenger.entity.Account;
|
||||||
/**
|
/**
|
||||||
* Defines a user on the network (eg. a contact, chat partner, group chat member etc).
|
* Defines a user on the network (eg. a contact, chat partner, group chat member etc).
|
||||||
* Basically anyone that may send you a message is a Peer.
|
* Basically anyone that may send you a message is a Peer.
|
||||||
|
*
|
||||||
|
* An implementation can be found as {@link IPeer}.
|
||||||
*/
|
*/
|
||||||
public interface Peer {
|
public interface Peer {
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package org.mercury_im.messenger.entity.contact;
|
package org.mercury_im.messenger.entity.contact;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enum describing the relationship between the user and another entity.
|
||||||
|
*/
|
||||||
public enum SubscriptionMode {
|
public enum SubscriptionMode {
|
||||||
/**
|
/**
|
||||||
* No subscription between us an them.
|
* No subscription between us an them.
|
||||||
|
|
|
@ -4,6 +4,11 @@ import org.mercury_im.messenger.entity.contact.Peer;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Event of someone typing in a chat.
|
||||||
|
*
|
||||||
|
* An implementation can be found as {@link ITypingEvent}.
|
||||||
|
*/
|
||||||
public interface TypingEvent {
|
public interface TypingEvent {
|
||||||
|
|
||||||
Map<Peer, TypingState> getTypingStates();
|
Map<Peer, TypingState> getTypingStates();
|
||||||
|
|
|
@ -9,7 +9,7 @@ public class IMessage implements Message {
|
||||||
protected String sender;
|
protected String sender;
|
||||||
protected String recipient;
|
protected String recipient;
|
||||||
protected Date timestamp;
|
protected Date timestamp;
|
||||||
protected List<MessagePayload> payloads;
|
protected List<PayloadContainer> payloads;
|
||||||
protected MessageDeliveryState deliveryState;
|
protected MessageDeliveryState deliveryState;
|
||||||
protected MessageMetadata metadata;
|
protected MessageMetadata metadata;
|
||||||
|
|
||||||
|
@ -54,12 +54,12 @@ public class IMessage implements Message {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MessagePayload> getMessagePayloads() {
|
public List<PayloadContainer> getMessagePayloads() {
|
||||||
return payloads;
|
return payloads;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setMessagePayloads(List<MessagePayload> list) {
|
public void setMessagePayloads(List<PayloadContainer> list) {
|
||||||
this.payloads = list;
|
this.payloads = list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
package org.mercury_im.messenger.entity.message;
|
|
||||||
|
|
||||||
import org.mercury_im.messenger.entity.message.content.MessageContent;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class IMessagePayload implements MessagePayload {
|
|
||||||
|
|
||||||
protected long id;
|
|
||||||
protected List<MessageContent> contents;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setId(long id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<MessageContent> getMessageContents() {
|
|
||||||
return contents;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setMessageContents(List<MessageContent> messageContents) {
|
|
||||||
this.contents = messageContents;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package org.mercury_im.messenger.entity.message;
|
||||||
|
|
||||||
|
import org.mercury_im.messenger.entity.message.content.Payload;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class IPayloadContainer implements PayloadContainer {
|
||||||
|
|
||||||
|
protected long id;
|
||||||
|
protected List<Payload> contents;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setId(long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Payload> getMessageContents() {
|
||||||
|
return contents;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setMessageContents(List<Payload> payloads) {
|
||||||
|
this.contents = payloads;
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,9 +21,9 @@ public interface Message {
|
||||||
|
|
||||||
void setTimestamp(Date timestamp);
|
void setTimestamp(Date timestamp);
|
||||||
|
|
||||||
List<MessagePayload> getMessagePayloads();
|
List<PayloadContainer> getMessagePayloads();
|
||||||
|
|
||||||
void setMessagePayloads(List<MessagePayload> messagePayloads);
|
void setMessagePayloads(List<PayloadContainer> payloadContainers);
|
||||||
|
|
||||||
MessageDeliveryState getDeliveryState();
|
MessageDeliveryState getDeliveryState();
|
||||||
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
package org.mercury_im.messenger.entity.message;
|
|
||||||
|
|
||||||
import org.mercury_im.messenger.entity.message.content.MessageContent;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Defines the payload of a message.
|
|
||||||
* A payload can either be a plaintext container or an encrypted container and contains
|
|
||||||
* MessageContents.
|
|
||||||
* A message may contain encrypted and unencrypted contents. Those could then be represented by
|
|
||||||
* two different MessageContents.
|
|
||||||
*/
|
|
||||||
public interface MessagePayload {
|
|
||||||
|
|
||||||
long getId();
|
|
||||||
|
|
||||||
void setId(long id);
|
|
||||||
|
|
||||||
List<MessageContent> getMessageContents();
|
|
||||||
|
|
||||||
void setMessageContents(List<MessageContent> messageContents);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package org.mercury_im.messenger.entity.message;
|
||||||
|
|
||||||
|
import org.mercury_im.messenger.entity.message.content.Payload;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Defines a certain set of {@link Payload Payloads} of a message.
|
||||||
|
* A {@link PayloadContainer} can either be a plaintext container or an encrypted container and contains
|
||||||
|
* {@link Payload Payloads}.
|
||||||
|
*
|
||||||
|
* A message may contain encrypted and unencrypted payloads. Those could then be represented by
|
||||||
|
* two different {@link PayloadContainer PayloadContainers}.
|
||||||
|
*/
|
||||||
|
public interface PayloadContainer {
|
||||||
|
|
||||||
|
long getId();
|
||||||
|
|
||||||
|
void setId(long id);
|
||||||
|
|
||||||
|
List<Payload> getMessageContents();
|
||||||
|
|
||||||
|
void setMessageContents(List<Payload> payloads);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,16 +0,0 @@
|
||||||
package org.mercury_im.messenger.entity.message.content;
|
|
||||||
|
|
||||||
public interface MessageContent {
|
|
||||||
|
|
||||||
long getId();
|
|
||||||
|
|
||||||
void setId(long id);
|
|
||||||
|
|
||||||
interface Body extends MessageContent {
|
|
||||||
|
|
||||||
String getBody();
|
|
||||||
|
|
||||||
void setBody(String body);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package org.mercury_im.messenger.entity.message.content;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface describing contents of a message.
|
||||||
|
*
|
||||||
|
* A message consists of general information like sender, recipient etc.
|
||||||
|
* Additionally a message contains at least one payload container, eg. the set of unencrypted
|
||||||
|
* message contents, or the set of encrypted contents.
|
||||||
|
*
|
||||||
|
* Inside those payloads, message contents exist.
|
||||||
|
*/
|
||||||
|
public interface Payload {
|
||||||
|
|
||||||
|
long getId();
|
||||||
|
|
||||||
|
void setId(long id);
|
||||||
|
|
||||||
|
interface Body extends Payload {
|
||||||
|
|
||||||
|
String getBody();
|
||||||
|
|
||||||
|
void setBody(String body);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
package org.mercury_im.messenger.entity.message.content;
|
package org.mercury_im.messenger.entity.message.content;
|
||||||
|
|
||||||
public class TextMessageContent implements MessageContent.Body {
|
public class TextPayload implements Payload.Body {
|
||||||
|
|
||||||
private long id;
|
private long id;
|
||||||
private String body;
|
private String body;
|
Loading…
Reference in a new issue