2019-12-01 23:13:25 +01:00
|
|
|
package org.mercury_im.messenger.data.mapping;
|
|
|
|
|
|
|
|
import org.mercury_im.messenger.data.model.MessageModel;
|
2019-12-06 20:48:27 +01:00
|
|
|
import org.mercury_im.messenger.data.model.MessagePayloadContainerModel;
|
2019-12-01 23:13:25 +01:00
|
|
|
import org.mercury_im.messenger.entity.message.IMessage;
|
|
|
|
import org.mercury_im.messenger.entity.message.Message;
|
2019-12-06 20:48:27 +01:00
|
|
|
import org.mercury_im.messenger.entity.message.PayloadContainer;
|
2019-12-01 23:13:25 +01:00
|
|
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
|
|
|
|
public class MessageMapping implements Mapping<Message, MessageModel> {
|
|
|
|
|
|
|
|
private final MessagePayloadMapping messagePayloadMapping;
|
|
|
|
|
|
|
|
@Inject
|
|
|
|
public MessageMapping(MessagePayloadMapping messagePayloadMapping) {
|
|
|
|
this.messagePayloadMapping = messagePayloadMapping;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public MessageModel entityToModel(Message entity, MessageModel model) {
|
|
|
|
if (entity == null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
if (model == null) {
|
|
|
|
model = new MessageModel();
|
|
|
|
}
|
|
|
|
model.setSender(entity.getSender());
|
|
|
|
model.setRecipient(entity.getRecipient());
|
|
|
|
model.setTimestamp(entity.getTimestamp());
|
|
|
|
|
|
|
|
model.getPayloads().clear();
|
2019-12-06 20:48:27 +01:00
|
|
|
for (PayloadContainer payload : entity.getMessagePayloads()) {
|
|
|
|
MessagePayloadContainerModel payloadModel = messagePayloadMapping.entityToModel(payload, new MessagePayloadContainerModel());
|
2019-12-01 23:13:25 +01:00
|
|
|
payloadModel.setMessage(model);
|
|
|
|
model.getPayloads().add(payloadModel);
|
|
|
|
}
|
|
|
|
|
|
|
|
return model;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Message modelToEntity(MessageModel model, Message entity) {
|
|
|
|
if (model == null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
if (entity == null) {
|
|
|
|
entity = new IMessage();
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|