docs: private void processDefinition(DestinationAliasDefinition definition)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "processDefinition", definition);
  
          _definition = definition; // Null for BusHandler (foreign bus)
  
          // Null out previous cached settings first
          _forwardRoutingPath = null;
          _defaultFrp = null;
          _replyDest = null;
          _aliasDestinationAddr = null;
          _targetDestinationAddr = null;
          _hasScopedMessagePoints = false;
          _singleScopedQueuePointME = null;
          _scopedQueuePointMEs = null;
  
          if (_definition != null)
          {
              _aliasDestinationAddr = SIMPUtils.createJsDestinationAddress(_definition.getName(), null, getBus());
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(tc, "Alias destination address: " + _aliasDestinationAddr);
  
              _targetDestinationAddr = SIMPUtils.createJsDestinationAddress(getTargetName(), null, getTargetBus());
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(tc, "Target destination address: " + _targetDestinationAddr);
  
              // Convert array of names to list of jsDestinationAddresses for ForwardRoutingPath
              QualifiedDestinationName[] names = _definition.getForwardRoutingPath();
              if (names != null)
              {
                  _forwardRoutingPath = new ArrayList<JsDestinationAddress>(names.length);
                  _defaultFrp = new SIDestinationAddress[names.length];
  
                  for (int name = 0; name < names.length; name++)
                  {
                      JsDestinationAddress address =
                                      SIMPUtils.createJsDestinationAddress(names[name].getDestination(),
                                                                           null, // ME never set via config
                                                                           names[name].getBus());
                      _forwardRoutingPath.add(address);
                      _defaultFrp[name] = address;
  
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          SibTr.debug(tc, "Forward routing path [" + name + "]: " + address);
                  }
              }
  
              // Create a JsDestinationAddress from the qualifiedName of the reply destination
              QualifiedDestinationName replyName = _definition.getReplyDestination();
              if (replyName != null)
              {
                  _replyDest = SIMPUtils.createJsDestinationAddress(replyName.getDestination(),
                                                                    messageProcessor.getMessagingEngineUuid(),
                                                                    replyName.getBus());
                  if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                      SibTr.debug(tc, "Reply destination: " + _replyDest);
              }
  
              SIBUuid8[] queuePoints = _definition.getScopedQueuePointMEs();
              if ((queuePoints != null) && (queuePoints.length > 0))
              {
                  _hasScopedMessagePoints = true;
  
                  if (queuePoints.length == 1)
                  {
                      _singleScopedQueuePointME = queuePoints[0];
                      if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                          SibTr.debug(tc, "Single scoped Queue Point: " + queuePoints[0]);
                  }
                  else
                  {
                      _scopedQueuePointMEs = new HashSet<SIBUuid8>();
                      for (int i = 0; i < queuePoints.length; i++)
                      {
                          _scopedQueuePointMEs.add(queuePoints[i]);
                          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                              SibTr.debug(tc, "Scoped Queue Point: " + queuePoints[i]);
                      }
                  }
              }
              else if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(tc, "No scoped Queue Point");
  
              setReceiveAllowed(_definition);
          }
          else
              _isReceiveAllowed = true;
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "processDefinition");
      }