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

45 lines
1.3 KiB
Java
Raw Normal View History

2019-11-23 21:16:03 +01:00
package org.mercury_im.messenger.data.mapping;
import org.mercury_im.messenger.data.model.DirectChatModel;
import org.mercury_im.messenger.entity.chat.DirectChat;
2019-12-01 21:16:01 +01:00
import org.mercury_im.messenger.entity.chat.IDirectChat;
2019-11-23 21:16:03 +01:00
import org.mercury_im.messenger.entity.contact.Peer;
import javax.inject.Inject;
public class DirectChatMapping extends AbstractMapping<DirectChat, DirectChatModel> {
2019-11-23 21:16:03 +01:00
2019-12-01 19:56:13 +01:00
private final PeerMapping peerMapping;
2019-11-23 21:16:03 +01:00
@Inject
2019-12-01 21:16:01 +01:00
public DirectChatMapping(PeerMapping peerMapping) {
2019-12-01 19:56:13 +01:00
this.peerMapping = peerMapping;
}
2019-11-23 21:16:03 +01:00
@Override
public DirectChat newEntity(DirectChatModel model) {
return new IDirectChat();
}
@Override
public DirectChatModel newModel(DirectChat entity) {
return new DirectChatModel();
}
@Override
public DirectChatModel mapToModel(DirectChat entity, DirectChatModel model) {
2019-12-21 16:30:14 +01:00
model.setId(entity.getId());
model.setPeer(peerMapping.toModel(entity.getPeer(), model.getPeer()));
2019-11-23 21:16:03 +01:00
return model;
}
@Override
public DirectChat mapToEntity(DirectChatModel model, DirectChat entity) {
entity.setId(model.getId());
Peer peer = peerMapping.toEntity(model.getPeer(), entity.getPeer());
2019-11-23 21:16:03 +01:00
entity.setPeer(peer);
entity.setAccount(peer.getAccount());
return entity;
}
}