Object newObject = JsonSerializer.deserializeObject(newValue, model.objects);
ValueChangedEvent event =
new ValueChangedEventImpl(event(sessionId, userId).set("property", key).set("oldValue",
get(key)).set("newValue", newObject));
if (snapshot.has(key)) {
JsonArray oldValue = snapshot.getArray(key);
model.addOrRemoveParent(oldValue, id, false);
model.bytesUsed -= oldValue.toJsonString().length();
}
snapshot.set(key, newValue);
model.addOrRemoveParent(newValue, id, true);
fireEvent(event);
model.bytesUsed += newValue.toJsonString().length();