Mercury-IM/data/src/main/java/org/mercury_im/messenger/data/mapping/MessageMapping.java

53 lines
1.7 KiB
Java
Raw Normal View History

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;
}
}