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;
|
2019-12-07 02:04:31 +01:00
|
|
|
import org.mercury_im.messenger.entity.message.content.TextPayload;
|
2019-12-01 23:13:25 +01:00
|
|
|
|
2019-12-07 02:04:31 +01:00
|
|
|
import static org.mercury_im.messenger.data.enums.MessageContentType.body;
|
2019-12-01 23:13:25 +01:00
|
|
|
|
2019-12-07 02:04:31 +01:00
|
|
|
public class MessagePayloadMapping extends AbstractMapping<Payload, MessagePayloadModel> {
|
2019-12-01 23:13:25 +01:00
|
|
|
|
2019-12-07 02:04:31 +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
|
2019-12-07 02:04:31 +01:00
|
|
|
public MessagePayloadModel newModel(Payload entity) {
|
|
|
|
return new MessagePayloadModel();
|
|
|
|
}
|
2019-12-01 23:13:25 +01:00
|
|
|
|
2019-12-07 02:04:31 +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
|
|
|
}
|
2019-12-07 02:04:31 +01:00
|
|
|
// else if (...)
|
2019-12-01 23:13:25 +01:00
|
|
|
return model;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2019-12-07 02:04:31 +01:00
|
|
|
public Payload mapToEntity(MessagePayloadModel model, Payload entity) {
|
2019-12-01 23:13:25 +01:00
|
|
|
entity.setId(model.getId());
|
2019-12-07 02:04:31 +01:00
|
|
|
switch (model.getType()) {
|
|
|
|
case body:
|
|
|
|
TextPayload body = (TextPayload) entity;
|
|
|
|
body.setBody(model.getBody());
|
|
|
|
break;
|
2019-12-01 23:13:25 +01:00
|
|
|
}
|
|
|
|
return entity;
|
|
|
|
}
|
|
|
|
}
|