/** * INTERNAL: * Revert the object's attributes from the parent. * This uses merging to merge the object changes. */ public Object revertObject(Object clone, int cascadeDepth) { if (clone == null) { return null; } //CR#2272 logDebugMessage(clone, "revert"); ClassDescriptor descriptor = getDescriptor(clone); ObjectBuilder builder = descriptor.getObjectBuilder(); Object implementation = builder.unwrapObject(clone, this); MergeManager manager = new MergeManager(this); manager.mergeOriginalIntoWorkingCopy(); manager.setCascadePolicy(cascadeDepth); try { manager.mergeChanges(implementation, null); } catch (RuntimeException exception) { return handleException(exception); } return clone; }
manager.mergeOriginalIntoWorkingCopy(); manager.cascadeAllParts(); for (Enumeration cloneEnum = getCloneMapping().keys(); cloneEnum.hasMoreElements();) {