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

51 lines
1.6 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 extends AbstractMapping<Message, MessageModel> {
2019-12-01 23:13:25 +01:00
private final MessagePayloadContainerMapping messagePayloadContainerMapping;
2019-12-01 23:13:25 +01:00
@Inject
public MessageMapping(MessagePayloadContainerMapping messagePayloadContainerMapping) {
this.messagePayloadContainerMapping = messagePayloadContainerMapping;
2019-12-01 23:13:25 +01:00
}
@Override
public Message newEntity(MessageModel model) {
return new IMessage();
}
@Override
public MessageModel newModel(Message entity) {
return new MessageModel();
}
@Override
public MessageModel mapToModel(Message entity, MessageModel model) {
2019-12-01 23:13:25 +01:00
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 = messagePayloadContainerMapping.toModel(payload, new MessagePayloadContainerModel());
2019-12-01 23:13:25 +01:00
payloadModel.setMessage(model);
model.getPayloads().add(payloadModel);
}
return model;
}
@Override
public Message mapToEntity(MessageModel model, Message entity) {
2019-12-01 23:13:25 +01:00
return null;
}
}