@Override
public JsonElement serialize(EventMessageBundle src, Type typeOfSrc,
JsonSerializationContext context) {
JsonObject result = new JsonObject();
JsonArray events = new JsonArray();
for (Event event : src.getEvents()) {
try {
events.add(EventSerializer.serialize(event, context));
} catch (EventSerializationException e) {
throw new JsonParseException(e);
}
}
result.add(EVENTS_TAG, events);
result.add(WAVELET_TAG, context.serialize(src.getWaveletData()));
result.add(BLIPS_TAG, context.serialize(src.getBlipData()));
result.add(THREADS_TAG, context.serialize(src.getThreads()));
result.addProperty(ROBOT_ADDRESS_TAG, src.getRobotAddress());
String proxyingFor = src.getProxyingFor();
if (proxyingFor != null && !proxyingFor.isEmpty()) {
result.addProperty(PROXYING_FOR_TAG, proxyingFor);
}
String rpcServerUrl = src.getRpcServerUrl();
if (rpcServerUrl != null && !rpcServerUrl.isEmpty()) {
result.addProperty(RPC_SERVER_URL_TAG, rpcServerUrl);
}
return result;
}