docs: public static Map<String, Interceptor> // d468919
      populateInterceptorsMap
                      (ClassLoader classLoader
                       , Interceptors interceptors
                       , IdentityHashMap<Class<?>, EnumMap<InterceptorMethodKind, List<Method>>> interceptorsMap
                       , J2EEName name)
                                      throws EJBConfigurationException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          {
              Tr.entry(tc, "populateInterceptorsMap");
          }
  
          // Get the list of Interceptor objects from the WCCM Interceptors object
          // passed as argument to this method.
          List<Interceptor> interceptorList = interceptors.getInterceptorList();
          HashMap<String, Interceptor> interceptorMap = new HashMap<String, Interceptor>(interceptorList.size()); // d468919
  
          // For each Interceptor object in the list.
          for (Interceptor interceptor : interceptorList)
          {
              String className = interceptor.getInterceptorClassName();
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
              {
                  Tr.event(tc, "Loading EJB 3.0 Interceptor class: " + className);
              }
              Class<?> c;
              try
              {
                  c = classLoader.loadClass(className);
              } catch (ClassNotFoundException ex)
              {
                  FFDCFilter.processException(ex, CLASS_NAME + ".initializeInterceptorMD", "5352");
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled())
                  {
                      Tr.event(tc, "Load of EJB 3.0 Interceptor class failed: " + className, ex);
                  }
                  EJBConfigurationException ecex;
                  ecex = new EJBConfigurationException("CNTR0237E: The user-provided EJB 3.0 interceptor class \""
                                                       + className + "\" could not be found or loaded.", ex);
  
                  // CNTR0237E: The user-provided enterprise bean level 3.0 {0} interceptor class cannot be found or loaded.
                  Tr.error(tc, "INTERCEPTOR_CLASS_NOT_FOUND_CNTR0237E", new Object[] { className });
                  throw ecex;
              }
  
              // Update the interceptor map with this WCCM Interceptor object.
              interceptorMap.put(className, interceptor); // d468919
  
              // Create a LIFO list of Class object where most generic super class of interceptor
              // is first out and the interceptor class itself is last out.
              LinkedList<Class<?>> lifoClasses = InterceptorMetaDataHelper.getLIFOSuperClassesList(c);
  
              // Create EnumMap for this Interceptor class and populate it with any
              // interceptor methods configured for this Interceptor class.
              EnumMap<InterceptorMethodKind, List<Method>> methodMap = new EnumMap<InterceptorMethodKind, List<Method>>(InterceptorMethodKind.class);
  
              // F743-17763 - Iterate over all interceptor kinds, and find the
              // interceptor methods defined in the deployment descriptor.
              for (InterceptorMethodKind kind : InterceptorMethodKind.values())
              {
                  // Get list of methods and populate EnumMap with the list of Method
                  // objects for these methods.
                  List<? extends InterceptorCallback> methodMetaDataList = kind.getMethods(interceptor);
  
                  if (methodMetaDataList != null && !methodMetaDataList.isEmpty())
                  {
                      populateInterceptorMethodMap(c, lifoClasses, kind, PARM_TYPES, methodMetaDataList, methodMap, false, name);
                  }
              }
  
              // Create a map entry for this Interceptor class.
              interceptorsMap.put(c, methodMap);
  
          } // end for each interceptor in list
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          {
              Tr.exit(tc, "populateInterceptorsMap");
          }
  
          return interceptorMap; // d468919
      }