mirror of
https://codeberg.org/Mercury-IM/Mercury-IM
synced 2024-06-15 08:04:52 +02:00
63 lines
2.1 KiB
Java
63 lines
2.1 KiB
Java
package org.mercury_im.messenger.data.mapping;
|
|
|
|
import org.mercury_im.messenger.data.model.MessagePayloadModel;
|
|
import org.mercury_im.messenger.data.model.MessagePayloadContainerModel;
|
|
import org.mercury_im.messenger.entity.message.IPayloadContainer;
|
|
import org.mercury_im.messenger.entity.message.PayloadContainer;
|
|
import org.mercury_im.messenger.entity.message.content.Payload;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
public class MessagePayloadMapping implements Mapping<PayloadContainer, MessagePayloadContainerModel> {
|
|
|
|
private final MessageContentMapping messageContentMapping;
|
|
|
|
@Inject
|
|
public MessagePayloadMapping(MessageContentMapping messageContentMapping) {
|
|
this.messageContentMapping = messageContentMapping;
|
|
}
|
|
|
|
@Override
|
|
public MessagePayloadContainerModel entityToModel(PayloadContainer entity, MessagePayloadContainerModel model) {
|
|
if (entity == null) {
|
|
return null;
|
|
}
|
|
if (model == null) {
|
|
model = new MessagePayloadContainerModel();
|
|
}
|
|
|
|
model.getContents().clear();
|
|
for (Payload contentEntity : entity.getMessageContents()) {
|
|
MessagePayloadModel contentModel = messageContentMapping.entityToModel(contentEntity, new MessagePayloadModel());
|
|
contentModel.setPayload(model);
|
|
model.getContents().add(contentModel);
|
|
}
|
|
|
|
return model;
|
|
}
|
|
|
|
@Override
|
|
public PayloadContainer modelToEntity(MessagePayloadContainerModel model, PayloadContainer entity) {
|
|
if (model == null) {
|
|
return null;
|
|
}
|
|
if (entity == null) {
|
|
entity = new IPayloadContainer();
|
|
}
|
|
|
|
entity.setId(model.getId());
|
|
|
|
List<Payload> contents = new ArrayList<>(model.getContents().size());
|
|
for (MessagePayloadModel contentModel : model.getContents()) {
|
|
Payload contentEntity = messageContentMapping.modelToEntity(contentModel, null);
|
|
contents.add(contentEntity);
|
|
}
|
|
entity.setMessageContents(contents);
|
|
|
|
return entity;
|
|
}
|
|
}
|