/** * Merges the children of the given composite change into this change. This means the changes are * removed from the given composite change and added to this change. * * @param change the change to merge */ public void merge(CompositeChange change) { Change[] others = change.getChildren(); for (int i = 0; i < others.length; i++) { Change other = others[i]; change.remove(other); add(other); } }
@Override void createChange(final IProgressMonitor pm, final CompositeChange rootChange) { try { pm.beginTask(UITexts.mkPointFreeDelegate_collectingChanges, 100); if (change == null) { throw new IllegalStateException(); } // do not have the intermediate step for (Change c : change.getChildren()) { change.remove(c); rootChange.add(c); } // rootChange.add( change ); } finally { pm.done(); } }