code: public void processAnnotations(Class<?> classHierarchy)
                      throws InjectionException
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "processAnnotations: " + classHierarchy);
  
          for (Class<?> klass = classHierarchy; klass != null && klass != Object.class; klass = klass.getSuperclass())
          {
              Field[] fields = getAllDeclaredFields(klass, classHierarchy);
  
              for (int processorIndex = 0; processorIndex < ivProviders.size(); processorIndex++)
              {
                  InjectionProcessorProvider<?, ?> provider = ivProviders.get(processorIndex);
  
                  processClassAnnotations(processorIndex, provider, klass);
  
                  if (fields != null)
                  {
                      processMemberAnnotations(processorIndex, provider, fields, fields);
                  }
              }
          }
  
          Method[] methods = getAllDeclaredMethods(classHierarchy);
          for (int processorIndex = 0; processorIndex < ivProviders.size(); processorIndex++)
          {
              processMemberAnnotations(processorIndex, ivProviders.get(processorIndex), methods, methods);
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "processAnnotations");
      }
docs: Process all class, field, and method annotations for the class hierarchy.
  
  @param classHierarchy the subclass of the hierarchy to process