docs: private BusHandler createForeignBus(
                                          String linkName,
                                          String stringLinkUuid,
                                          ForeignBusDefinition foreignBusDefinition) throws SINotPossibleInCurrentConfigurationException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "createForeignBus",
                          new Object[] { linkName, stringLinkUuid, foreignBusDefinition });
  
          SIBUuid12 linkUuid = new SIBUuid12(stringLinkUuid);
          BusHandler busHandler = null;
  
          synchronized (linkIndex)
          {
              LinkTypeFilter filter = new LinkTypeFilter();
              filter.VISIBLE = Boolean.TRUE;
              DestinationHandler linkHandler = linkIndex.findByUuid(linkUuid, filter);
  
              if (linkHandler == null)
              {
                  if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                      SibTr.exit(
                                 tc,
                                 "createForeignBus",
                                 "Link not found");
  
                  SIMPNotPossibleInCurrentConfigurationException e =
                                  new SIMPNotPossibleInCurrentConfigurationException(
                                                  nls_cwsik.getFormattedMessage(
                                                                                "DELIVERY_ERROR_SIRC_30", // LINK_NOT_FOUND_ERROR_CWSIP0047
                                                                                new Object[] { linkName, stringLinkUuid, foreignBusDefinition.getName() }, null));
  
                  e.setExceptionReason(SIRCConstants.SIRC0030_LINK_NOT_FOUND_ERROR);
                  e.setExceptionInserts(new String[] { linkName, stringLinkUuid, foreignBusDefinition.getName() });
  
                  throw e;
              }
  
              // Create a new BusHandler, which is created locked
              busHandler =
                              new BusHandler(
                                              foreignBusDefinition,
                                              messageProcessor,
                                              this,
                                              durableSubscriptions,
                                              (LinkHandler) linkHandler);
  
              ForeignBusIndex.Type type = new ForeignBusIndex.Type();
              type.state = State.ACTIVE;
              foreignBusIndex.put(busHandler, type);
  
              // As a Bus is an extension of an Alias destination, register control adapter here
              busHandler.registerControlAdapters();
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "createForeignBus", busHandler);
  
          return busHandler;
      }