public void merge(ODirtyManager toMerge) { if (isSame(toMerge)) return; this.newRecords = mergeSet(this.newRecords, toMerge.getNewRecords()); this.updateRecords = mergeSet(this.updateRecords, toMerge.getUpdateRecords()); if (toMerge.getReferences() != null) { if (references == null) references = new IdentityHashMap<ODocument, List<OIdentifiable>>(); for (Entry<ODocument, List<OIdentifiable>> entry : toMerge.getReferences().entrySet()) { List<OIdentifiable> refs = references.get(entry.getKey()); if (refs == null) references.put(entry.getKey(), entry.getValue()); else refs.addAll(entry.getValue()); } } toMerge.override(this); }
private void reSave(ORecord record) { final ODirtyManager manager = ORecordInternal.getDirtyManager(record); final Set<ORecord> newRecords = manager.getNewRecords(); final Set<ORecord> updatedRecords = manager.getUpdateRecords(); manager.clearForSave(); if (newRecords != null) { for (ORecord newRecord : newRecords) { if (newRecord != record) saveRecord(newRecord, null, ODatabase.OPERATION_MODE.SYNCHRONOUS, false, null, null); } } if (updatedRecords != null) { for (ORecord updatedRecord : updatedRecords) { if (updatedRecord != record) saveRecord(updatedRecord, null, ODatabase.OPERATION_MODE.SYNCHRONOUS, false, null, null); } } }
do { Set<ORecord> newRecord = dirtyManager.getNewRecords(); Set<ORecord> updatedRecord = dirtyManager.getUpdateRecords(); dirtyManager.clear(); if (newRecord != null) { } while (dirtyManager.getNewRecords() != null || dirtyManager.getUpdateRecords() != null);
ODirtyManager dirtyManager = ORecordInternal.getDirtyManager(iRecord); Set<ORecord> newRecord = dirtyManager.getNewRecords(); Set<ORecord> updatedRecord = dirtyManager.getUpdateRecords(); dirtyManager.clearForSave(); if (newRecord != null) {