/** INTERNAL: Build and return a new element based on the change set. */ public Object buildAddedElementFromChangeSet(Object changeSet, MergeManager mergeManager) { ObjectChangeSet objectChangeSet = (ObjectChangeSet) changeSet; if (this.shouldMergeCascadeParts(mergeManager)) { Object targetElement = null; if (mergeManager.shouldMergeChangesIntoDistributedCache()) { targetElement = objectChangeSet.getTargetVersionOfSourceObject(mergeManager.getSession(), true); } else { targetElement = objectChangeSet.getUnitOfWorkClone(); } mergeManager.mergeChanges(targetElement, objectChangeSet); } return this.buildElementFromChangeSet(changeSet, mergeManager); }