code: AnnotationVisitor addAnnotation(TypeCache.CachedType containingDescriptor, AnnotatedDescriptor annotatedDescriptor, String typeName) {
          if (typeName == null) {
              return null;
          }
          if (jQASuppress.class.getName().equals(typeName)) {
              JavaSuppressDescriptor javaSuppressDescriptor = scannerContext.getStore().addDescriptorType(annotatedDescriptor, JavaSuppressDescriptor.class);
              return new SuppressAnnotationVisitor(javaSuppressDescriptor);
          }
          TypeDescriptor type = resolveType(typeName, containingDescriptor).getTypeDescriptor();
          AnnotationValueDescriptor annotationDescriptor = scannerContext.getStore().create(AnnotationValueDescriptor.class);
          annotationDescriptor.setType(type);
          annotatedDescriptor.getAnnotatedBy().add(annotationDescriptor);
          return new AnnotationValueVisitor(containingDescriptor, annotationDescriptor, this);
      }
docs: Add an annotation descriptor of the given type name to an annotated
  descriptor.
  
  @param annotatedDescriptor
  The annotated descriptor.
  @param typeName
  The type name of the annotation.
  @return The annotation descriptor.