docs: @Override
      public int compareTo(final AnnotationInfo o) {
          final int diff = getName().compareTo(o.getName());
          if (diff != 0) {
              return diff;
          }
          if (annotationParamValues == null && o.annotationParamValues == null) {
              return 0;
          } else if (annotationParamValues == null) {
              return -1;
          } else if (o.annotationParamValues == null) {
              return 1;
          } else {
              for (int i = 0, max = Math.max(annotationParamValues.size(),
                      o.annotationParamValues.size()); i < max; i++) {
                  if (i >= annotationParamValues.size()) {
                      return -1;
                  } else if (i >= o.annotationParamValues.size()) {
                      return 1;
                  } else {
                      final int diff2 = annotationParamValues.get(i).compareTo(o.annotationParamValues.get(i));
                      if (diff2 != 0) {
                          return diff2;
                      }
                  }
              }
          }
          return 0;
      }