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); }