docs: @Override
      public RuntimeEventListener register(Controllable controllable, ControllableType type)
                      throws AlreadyRegisteredException, SIBExceptionInvalidValue {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "register", new Object[] { controllable, type });
  
          RuntimeEventListener retValue = null;
          if (type == ControllableType.QUEUE_POINT) {
              createQueueMBean(controllable);
  
          }
          else if (type == ControllableType.PUBLICATION_POINT) {
              createTopicMBean(controllable);
          }
          else if (type == ControllableType.SUBSCRIPTION_POINT) {
              createSubscriberMBean(controllable);
          }
          else
          {
              String reason = "Invalid ControllableType of " + type.toString();
              final SIBExceptionInvalidValue e =
                              new SIBExceptionInvalidValue(
                                              nls.getFormattedMessage("INTERNAL_ERROR_SIAS0003", new Object[] { reason }, reason));
              FFDCFilter.processException(e, CLASS_NAME + ".register", "PROBE_ID_10", this);
              SibTr.exception(tc, e);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  SibTr.exit(tc, "register", e);
              throw e;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "register", new Object[] { retValue });
          return retValue;
      }