@Override
        protected int doHash(AnnotationMirror annotation) {
          DeclaredType type = annotation.getAnnotationType();
          Iterable<AnnotationValue> annotationValues =
              getAnnotationValuesWithDefaults(annotation).values();
          return Arrays.hashCode(
              new int[] {
                MoreTypes.equivalence().hash(type),
                AnnotationValues.equivalence().pairwise().hash(annotationValues)
              });
        }
A utility class for working with {@link AnnotationMirror} instances.

@author Gregory Kick
common/src/main/java/com/google/auto/common/AnnotationMirrors.java