package network.thunder.core.communication.objects.messages.impl;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import network.thunder.core.communication.Message;
import network.thunder.core.communication.objects.messages.interfaces.helper.MessageSerializer;
import java.io.UnsupportedEncodingException;
public class MessageSerializerImpl implements MessageSerializer {
@Override
public byte[] serializeMessage (Message message) {
try {
Gson gson = new GsonBuilder().registerTypeHierarchyAdapter(Message.class, new InterfaceAdapter<Message>()).create();
String json = gson.toJson(message);
byte[] data = json.getBytes("UTF-8");
return data;
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
@Override
public Message deserializeMessage (byte[] data) {
try {
Gson gson = new GsonBuilder().registerTypeAdapter(Message.class, new InterfaceAdapter<Message>()).create();
String json = new String(data, "UTF-8");
Message message = gson.fromJson(json, Message.class);
return message;
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
}