2019-11-23 21:16:03 +01:00
|
|
|
package org.mercury_im.messenger.data.mapping;
|
|
|
|
|
|
|
|
import org.mercury_im.messenger.data.model.PeerModel;
|
|
|
|
import org.mercury_im.messenger.entity.contact.IPeer;
|
|
|
|
import org.mercury_im.messenger.entity.contact.Peer;
|
|
|
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
|
|
|
|
public class PeerMapping implements Mapping<Peer, PeerModel> {
|
|
|
|
|
2019-12-01 19:56:13 +01:00
|
|
|
private final AccountMapping accountMapping;
|
|
|
|
|
2019-11-23 21:16:03 +01:00
|
|
|
@Inject
|
2019-12-01 19:56:13 +01:00
|
|
|
public PeerMapping(AccountMapping accountMapping) {
|
|
|
|
this.accountMapping = accountMapping;
|
|
|
|
}
|
2019-11-23 21:16:03 +01:00
|
|
|
|
|
|
|
@Override
|
2019-11-25 15:17:49 +01:00
|
|
|
public PeerModel entityToModel(Peer entity, PeerModel model) {
|
2019-12-01 19:56:13 +01:00
|
|
|
if (entity == null) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
if (model == null) {
|
|
|
|
model = new PeerModel();
|
|
|
|
}
|
2019-11-25 15:17:49 +01:00
|
|
|
model.setAccount(accountMapping.entityToModel(entity.getAccount(), model.getAccount()));
|
2019-11-23 21:16:03 +01:00
|
|
|
model.setAddress(entity.getAddress());
|
|
|
|
return model;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2019-11-25 15:17:49 +01:00
|
|
|
public Peer modelToEntity(PeerModel model, Peer entity) {
|
2019-12-01 19:56:13 +01:00
|
|
|
if (model == null) {
|
|
|
|
return null;
|
|
|
|
}
|
2019-12-01 21:16:01 +01:00
|
|
|
if (entity == null) {
|
|
|
|
entity = new IPeer();
|
|
|
|
}
|
2019-11-25 15:17:49 +01:00
|
|
|
entity.setAccount(accountMapping.modelToEntity(model.getAccount(), entity.getAccount()));
|
|
|
|
entity.setAddress(model.getAddress());
|
|
|
|
entity.setId(model.getId());
|
|
|
|
return entity;
|
2019-11-23 21:16:03 +01:00
|
|
|
}
|
|
|
|
}
|