@Override
public JsonElement serialize(Registration src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject element = new JsonObject();
element.addProperty("endpoint", src.getEndpoint());
element.addProperty("registrationId", src.getId());
element.add("registrationDate", context.serialize(src.getRegistrationDate()));
element.add("lastUpdate", context.serialize(src.getLastUpdate()));
element.addProperty("address", src.getAddress().getHostAddress() + ":" + src.getPort());
element.addProperty("smsNumber", src.getSmsNumber());
element.addProperty("lwM2mVersion", src.getLwM2mVersion());
element.addProperty("lifetime", src.getLifeTimeInSec());
element.addProperty("bindingMode", src.getBindingMode().toString());
element.add("rootPath", context.serialize(src.getRootPath()));
element.add("objectLinks", context.serialize(src.getSortedObjectLinks()));
element.add("secure", context.serialize(src.getIdentity().isSecure()));
element.add("additionalRegistrationAttributes", context.serialize(src.getAdditionalRegistrationAttributes()));
if (src.usesQueueMode()) {
element.add("sleeping", context.serialize(!presenceService.isClientAwake(src)));
}
return element;
}
}