docs: private void updateAutoLink(AppLinkData linkData, boolean add, J2EEName j2eeName, BeanMetaData bmd)
      {
          final boolean isTraceOn = TraceComponent.isAnyTracingEnabled();
          if (isTraceOn && tc.isEntryEnabled())
              Tr.entry(tc, "updateAutoLink");
  
          String module = j2eeName.getModule();
          String beanInterface = null;
  
          // -----------------------------------------------------------------------
          // Locate the table of interfaces for the module and application   d446993
          // -----------------------------------------------------------------------
  
          Map<String, Set<J2EEName>> appTable = linkData.ivBeansByType;
          Map<String, Set<J2EEName>> moduleTable = linkData.ivBeansByModuleByType.get(module);
  
          if (moduleTable == null)
          {
              moduleTable = new HashMap<String, Set<J2EEName>>(7);
              linkData.ivBeansByModuleByType.put(module, moduleTable);
          }
  
          // -----------------------------------------------------------------------
          // Add all of the interfaces of the EJB which may be injected/looked up
          // -----------------------------------------------------------------------
  
          beanInterface = bmd.homeInterfaceClassName;
          if (beanInterface != null)
          {
              updateAppLinkDataTable(appTable, add, beanInterface, j2eeName, "ivBeansByType");
              updateAppLinkDataTable(moduleTable, add, beanInterface, j2eeName, null);
          }
  
          beanInterface = bmd.localHomeInterfaceClassName;
          if (beanInterface != null)
          {
              updateAppLinkDataTable(appTable, add, beanInterface, j2eeName, "ivBeansByType");
              updateAppLinkDataTable(moduleTable, add, beanInterface, j2eeName, null);
          }
  
          String[] businessRemoteInterfaceName = bmd.ivBusinessRemoteInterfaceClassNames;
          if (businessRemoteInterfaceName != null)
          {
              for (String remoteInterface : businessRemoteInterfaceName)
              {
                  updateAppLinkDataTable(appTable, add, remoteInterface, j2eeName, "ivBeansByType");
                  updateAppLinkDataTable(moduleTable, add, remoteInterface, j2eeName, null);
              }
          }
  
          String[] businessLocalInterfaceName = bmd.ivBusinessLocalInterfaceClassNames;
          if (businessLocalInterfaceName != null)
          {
              for (String localInterface : businessLocalInterfaceName)
              {
                  updateAppLinkDataTable(appTable, add, localInterface, j2eeName, "ivBeansByType");
                  updateAppLinkDataTable(moduleTable, add, localInterface, j2eeName, null);
              }
          }
  
          // F743-1756 - Also add No-Interface View to maps for injection/lookup
          if (bmd.ivLocalBean)
          {
              beanInterface = bmd.enterpriseBeanClassName;
              updateAppLinkDataTable(appTable, add, beanInterface, j2eeName, "ivBeansByType");
              updateAppLinkDataTable(moduleTable, add, beanInterface, j2eeName, null);
          }
  
          // F743-26072 - If this was the last bean in the module type table, then
          // remove the module type table.
          if (moduleTable.isEmpty())
          {
              if (isTraceOn && tc.isDebugEnabled())
                  Tr.debug(tc, "ivBeansByModuleByType: removing " + module);
              linkData.ivBeansByModuleByType.remove(module);
          }
  
          if (isTraceOn && tc.isEntryEnabled())
              Tr.exit(tc, "updateAutoLink");
      }