docs: private final ControlMessage makeInboundControlMessage(JsMsgObject jmo, int messageType) {
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())SibTr.entry(tc, "makeInboundControlMessage", Integer.valueOf(messageType) );
  
      ControlMessage controlMessage = null;
  
      /* Create an instance of the appropriate message subclass                 */
      switch (messageType) {
  
        case ControlMessageType.ACKEXPECTED_INT:
          controlMessage = new ControlAckExpectedImpl(jmo);
          break;
  
        case ControlMessageType.SILENCE_INT:
          controlMessage = new ControlSilenceImpl(jmo);
          break;
  
        case ControlMessageType.ACK_INT:
          controlMessage = new ControlAckImpl(jmo);
          break;
  
        case ControlMessageType.NACK_INT:
          controlMessage = new ControlNackImpl(jmo);
          break;
  
        case ControlMessageType.PREVALUE_INT:
          controlMessage = new ControlPrevalueImpl(jmo);
          break;
  
        case ControlMessageType.ACCEPT_INT:
          controlMessage = new ControlAcceptImpl(jmo);
          break;
  
        case ControlMessageType.REJECT_INT:
          controlMessage = new ControlRejectImpl(jmo);
          break;
  
        case ControlMessageType.DECISION_INT:
          controlMessage = new ControlDecisionImpl(jmo);
          break;
  
        case ControlMessageType.REQUEST_INT:
          controlMessage = new ControlRequestImpl(jmo);
          break;
  
        case ControlMessageType.REQUESTACK_INT:
          controlMessage = new ControlRequestAckImpl(jmo);
          break;
  
        case ControlMessageType.REQUESTHIGHESTGENERATEDTICK_INT:
          controlMessage = new ControlRequestHighestGeneratedTickImpl(jmo);
          break;
  
        case ControlMessageType.HIGHESTGENERATEDTICK_INT:
          controlMessage = new ControlHighestGeneratedTickImpl(jmo);
          break;
  
        case ControlMessageType.RESETREQUESTACK_INT:
          controlMessage = new ControlResetRequestAckImpl(jmo);
          break;
  
        case ControlMessageType.RESETREQUESTACKACK_INT:
          controlMessage = new ControlResetRequestAckAckImpl(jmo);
          break;
  
        case ControlMessageType.BROWSEGET_INT:
          controlMessage = new ControlBrowseGetImpl(jmo);
          break;
  
        case ControlMessageType.BROWSEEND_INT:
          controlMessage = new ControlBrowseEndImpl(jmo);
          break;
  
        case ControlMessageType.BROWSESTATUS_INT:
          controlMessage = new ControlBrowseStatusImpl(jmo);
          break;
  
        case ControlMessageType.COMPLETED_INT:
          controlMessage = new ControlCompletedImpl(jmo);
          break;
  
        case ControlMessageType.DECISIONEXPECTED_INT:
          controlMessage = new ControlDecisionExpectedImpl(jmo);
          break;
  
        case ControlMessageType.CREATESTREAM_INT:
          controlMessage = new ControlCreateStreamImpl(jmo);
          break;
  
        case ControlMessageType.AREYOUFLUSHED_INT:
          controlMessage = new ControlAreYouFlushedImpl(jmo);
          break;
  
        case ControlMessageType.FLUSHED_INT:
          controlMessage = new ControlFlushedImpl(jmo);
          break;
  
        case ControlMessageType.NOTFLUSHED_INT:
          controlMessage = new ControlNotFlushedImpl(jmo);
          break;
  
        case ControlMessageType.REQUESTFLUSH_INT:
          controlMessage = new ControlRequestFlushImpl(jmo);
          break;
  
        case ControlMessageType.REQUESTCARDINALITYINFO_INT:
          controlMessage = new ControlRequestCardinalityInfoImpl(jmo);
          break;
  
        case ControlMessageType.CARDINALITYINFO_INT:
          controlMessage = new ControlCardinalityInfoImpl(jmo);
          break;
  
        case ControlMessageType.CREATEDURABLE_INT:
          controlMessage = new ControlCreateDurableImpl(jmo);
          break;
  
        case ControlMessageType.DELETEDURABLE_INT:
          controlMessage = new ControlDeleteDurableImpl(jmo);
          break;
  
        case ControlMessageType.DURABLECONFIRM_INT:
          controlMessage = new ControlDurableConfirmImpl(jmo);
          break;
  
        default:
          /* This shouldn't happen at the moment but will provide some support  */
          /* for new types being added by future releases & arriving at an old  */
          /* Messaging Engine.                                                  */
          controlMessage = new ControlMessageImpl(jmo);
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())SibTr.exit(tc, "makeInboundControlMessage");
      return controlMessage;
    }