code: private <A extends Annotation, AS extends Annotation> void processClassAnnotations(int processorIndex,
                                                                                         InjectionProcessorProvider<A, AS> provider,
                                                                                         Class<?> klass)
                      throws InjectionException
      {
          Class<A> annClass = provider.getAnnotationClass();
          if (annClass != null)
          {
              A ann = klass.getAnnotation(annClass);
              if (ann != null)
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      Tr.debug(tc, "found class annotation " + toStringSecure(ann));
  
                  InjectionProcessor<A, AS> processor = getProcessor(processorIndex, provider);
                  addOrMergeInjectionBinding(processorIndex, processor, klass, null, ann);
              }
  
              Class<AS> pluralAnnClass = provider.getAnnotationsClass();
              if (pluralAnnClass != null)
              {
                  AS pluralAnn = klass.getAnnotation(pluralAnnClass);
                  if (pluralAnn != null)
                  {
                      InjectionProcessor<A, AS> processor = getProcessor(processorIndex, provider);
  
                      A[] singleAnns = processor.getAnnotations(pluralAnn);
                      if (singleAnns != null)
                      {
                          for (A singleAnn : singleAnns)
                          {
                              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                                  Tr.debug(tc, "found plural class annotation " + toStringSecure(singleAnn));
                              addOrMergeInjectionBinding(processorIndex, processor, klass, null, singleAnn);
                          }
                      }
                  }
              }
          }
      }
docs: Process class annotations with the specified processor.
  
  @param klass the class hierarchy
  @param processorIndex the index in {@link #ivProcessors}
  @param provider the corresponding provider