Mercury-IM/data/src/main/java/org/mercury_im/messenger/data/mapping/PeerMapping.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.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
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();
}
model.setAccount(accountMapping.entityToModel(entity.getAccount(), model.getAccount()));
2019-11-23 21:16:03 +01:00
model.setAddress(entity.getAddress());
return model;
}
@Override
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();
}
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
}
}