final Iterator<ErlangProjectionAnnotation> deletionIterator = deletions
.iterator();
while (deletionIterator.hasNext()) {
final ErlangProjectionAnnotation deleted = deletionIterator.next();
final Position deletedPosition = fCachedModel.getPosition(deleted);
if (deletedPosition == null) {
continue;
}
final Tuple deletedTuple = new Tuple(deleted, deletedPosition);
Tuple match = findMatch(deletedTuple, changes, null);
boolean addToDeletions = true;
if (match == null) {
match = findMatch(deletedTuple, additions.keySet(), additions);
addToDeletions = false;
}
if (match != null) {
final IErlElement element = match.annotation.getElement();
deleted.setElement(element);
deletedPosition.setLength(match.position.getLength());
if (deletedPosition instanceof ErlangElementPosition
&& element instanceof IErlMember) {
final ErlangElementPosition eep = (ErlangElementPosition) deletedPosition;
eep.setMember((IErlMember) element);
}