@Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   AnnotationHandle other = (AnnotationHandle) obj;
   if (annotatedItem == null) {
     if (other.annotatedItem != null) return false;
   } else if (!annotatedItem.equals(other.annotatedItem)) return false;
   if (annotationClass == null) {
     if (other.annotationClass != null) return false;
   } else if (!annotationClass.equals(other.annotationClass)) return false;
   if (annotationField == null) {
     if (other.annotationField != null) return false;
   } else if (!annotationField.equals(other.annotationField)) return false;
   return true;
 }