@Nullable public MultiMap<LocalChangeList, Change> moveChangesTo( final String name, final Change[] changes) { final LocalChangeListImpl changeList = (LocalChangeListImpl) myMap.get(name); if (changeList != null) { final MultiMap<LocalChangeList, Change> result = new MultiMap<LocalChangeList, Change>(); for (LocalChangeList list : myMap.values()) { if (list.equals(changeList)) continue; for (Change change : changes) { final Change removedChange = ((LocalChangeListImpl) list).removeChange(change); if (removedChange != null) { changeList.addChange(removedChange); result.putValue(list, removedChange); } } } return result; } return null; }