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

48 lines
1.4 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.MessagePayloadModel;
2019-12-06 20:48:27 +01:00
import org.mercury_im.messenger.entity.message.content.Payload;
import org.mercury_im.messenger.entity.message.content.TextPayload;
2019-12-01 23:13:25 +01:00
import static org.mercury_im.messenger.data.enums.MessageContentType.body;
2019-12-01 23:13:25 +01:00
public class MessagePayloadMapping extends AbstractMapping<Payload, MessagePayloadModel> {
2019-12-01 23:13:25 +01:00
@Override
public Payload newEntity(MessagePayloadModel model) {
switch (model.getType()) {
case body:
return new TextPayload();
default:
return null;
}
2019-12-01 23:13:25 +01:00
}
@Override
public MessagePayloadModel newModel(Payload entity) {
return new MessagePayloadModel();
}
2019-12-01 23:13:25 +01:00
@Override
public MessagePayloadModel mapToModel(Payload entity, MessagePayloadModel model) {
if (entity instanceof TextPayload) {
model.setType(body);
model.setBody(((TextPayload) entity).getBody());
2019-12-01 23:13:25 +01:00
}
// else if (...)
2019-12-01 23:13:25 +01:00
return model;
}
@Override
public Payload mapToEntity(MessagePayloadModel model, Payload entity) {
2019-12-01 23:13:25 +01:00
entity.setId(model.getId());
switch (model.getType()) {
case body:
TextPayload body = (TextPayload) entity;
body.setBody(model.getBody());
break;
2019-12-01 23:13:25 +01:00
}
return entity;
}
}