public void load(final String id, final Handler<Document> onLoaded,
final Handler<Model> opt_initializer, final Handler<Error> opt_error) {
bus.send(Constants.Topic.STORE, Json.createObject().set(Key.ID, id), new Handler<Message<JsonObject>>() {
@Override
public void handle(Message<JsonObject> message) {
JsonObject body = message.body();
if (!body.has(Key.VERSION)) {
body.set(Key.VERSION, 0);
}
final DocumentBridge bridge =
new DocumentBridge(SubscribeOnlyStore.this, id, body.getArray(Key.SNAPSHOT),
body.getArray(Key.COLLABORATORS), opt_error);
onLoaded(id, opt_initializer, body.getNumber(Key.VERSION), bridge);
if (body.getNumber(Key.VERSION) == 0) {
bridge.createRoot();
if (opt_initializer != null) {
Platform.scheduler().handle(opt_initializer, bridge.getDocument().getModel());
}
}