/** * Delete singleton entity. Returns {@code true} if entity was deleted. */ public boolean delete(final ODatabaseDocumentTx db) { return singleton.delete(db); }
/** * TEMP: workaround OrientDB 2.1 issue where in-TX dictionary updates are not replicated. */ public void replicate(final ODocument document, final EventKind eventKind) { singleton.replicate(document, eventKind); } }
/** * Set singleton entity. Returns {@code true} if entity was replaced. */ public boolean set(final ODatabaseDocumentTx db, final T entity) { return singleton.set(db, entity); }
/** * Get singleton entity or {@code null} if entity was not found. */ @Nullable public T get(final ODatabaseDocumentTx db) { return singleton.get(db); }
private boolean recordEvent(final ODocument document, final EventKind eventKind) { final String typeName = document.getClassName(); if (typeName != null) { final EntityAdapter adapter = recordingAdapters.get(typeName); if (adapter != null) { final ODatabaseInternal db = getCurrrentDb(); if (db != null) { // workaround OrientDB 2.1 issue where in-TX dictionary updates are not replicated if (db.getStorage().isDistributed() && adapter instanceof SingletonEntityAdapter) { ((SingletonEntityAdapter) adapter).singleton.replicate(document, eventKind); } List<Object> events = dbEvents.get(db); if (events == null) { events = new ArrayList<>(); dbEvents.put(db, events); } upsertEvent(events, document, eventKind); return true; } } } return false; }