final Set<Class<? extends Annotation>> newAnnotations = new HashSet<Class<? extends Annotation>>(anVals.keySet());
for(Annotation annotation : clazz.getDeclaredAnnotations()) {
final Annotation newAnnotation = anVals.get(annotation.annotationType());
if(newAnnotation == null) {
//the annotation was removed
changedClass.changeClassAnnotation(new ChangedAnnotationImpl(null, annotation, ChangeType.REMOVE, changedClass, annotation.annotationType()));
} else if(!newAnnotation.equals(annotation)) {
//same annotation, but it has been modified
changedClass.changeClassAnnotation(new ChangedAnnotationImpl(newAnnotation, annotation, ChangeType.MODIFY, changedClass, annotation.annotationType()));
}
newAnnotations.remove(annotation.annotationType());