docs: private ArrayList<String> orderClassLevelInterceptors() throws EJBConfigurationException
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
          {
              Tr.entry(tc, "orderClassLevelInterceptors");
          }
  
          // Create the default ordering of class level interceptor names
          // for this EJB.
          ArrayList<String> orderedList = new ArrayList<String>();
  
          // First add default interceptor names if they are not excluded
          // at the class level.
          if (ivExcludeDefaultFromClassLevel == false)
          {
              if (ivDefaultInterceptorNames.size() > 0)
              {
                  orderedList.addAll(ivDefaultInterceptorNames);
              }
          }
  
          // Now add in the class level interceptors.
          if (ivClassInterceptorNames.size() > 0)
          {
              orderedList.addAll(ivClassInterceptorNames);
          }
  
          // Now check whether order is overridden by a <interceptor-order> deployment
          // descriptor for this EJB.
          if (ivClassInterceptorBinding != null)
          {
              List<String> order = ivClassInterceptorBinding.ivInterceptorOrder; // d453477
              if (!order.isEmpty())
              {
                  // d472972 start
                  // Yep, default order is being overridden.  Verify the <interceptor-order> is
                  // a complete ordering of the interceptors.
                  ArrayList<String> interceptorOrder = new ArrayList<String>(order);
                  if (interceptorOrder.containsAll(orderedList))
                  {
                      // The order list is complete, so just use the order that was
                      // provided by the interceptor-order deployment descriptor.
                      orderedList = interceptorOrder;
                  }
                  else
                  {
                      // CNTR0227E: The {1} enterprise bean has an interceptor-order element which specifies
                      // the following interceptor-order list: {0}.  This list is not a total ordering of the
                      // class-level interceptors for this bean.  It is missing the following interceptor names: {2}
                      List<String> missingList;
                      if (interceptorOrder.size() < orderedList.size())
                      {
                          orderedList.removeAll(interceptorOrder);
                          missingList = orderedList;
                      }
                      else
                      {
                          interceptorOrder.removeAll(orderedList);
                          missingList = interceptorOrder;
                      }
                      String ejbName = ivJ2EEName.toString();
                      Object[] data = new Object[] { ejbName, order, missingList };
                      Tr.warning(tc, "PARTIAL_CLASS_INTERCEPTOR_ORDER_CNTR0227E", data);
                      throw new EJBConfigurationException(order + " is not a total ordering of class-level interceptors for EJB "
                                                          + ejbName + ". It is missing interceptor names: " + missingList);
                  }
                  // d472972 end
              }
          }
  
          if (isTraceOn && tc.isEntryEnabled())
          {
              Tr.exit(tc, "orderClassLevelInterceptors: " + orderedList);
          }
  
          return orderedList;
      }