docs: public final SubscriptionMessage makeInboundSubscriptionMessage() throws IncorrectMessageTypeException {
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "makeInboundSubscriptionMessage");
  
      SubscriptionMessage subMessage = null;
  
      /* If the message has never been flattened/encoded, it will already be  */
      /* a SubscriptionMessage so we can just proceed with this recast.       */
      /* Otherwise we will need to convert it into a SubscriptionMessage.     */
      if (this instanceof SubscriptionMessageImpl) {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Incoming message is already a SubscriptionMessage");
        subMessage = (SubscriptionMessageImpl)this;
      }
      /* The incoming message should be a SUBSCRIPTION message.                 */
      else if (getJsMessageType() == MessageType.SUBSCRIPTION) {
        // Ensure pending changes are flushed to JMF before passing the JMO around
        updateDataFields(MfpConstants.UDF_MAKE_INBOUND_OTHER);
        subMessage = new SubscriptionMessageImpl(jmo);
      }
      /* If the incoming message is some other sort of message it is an error.  */
      else {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Not a SUBSCRIPTION Message");
        String exString = nls.getFormattedMessage("UNEXPECTED_MESSAGE_TYPE_CWSIF0102"
                                                 ,new Object[] {getJsMessageType(), MessageType.SUBSCRIPTION}
                                                 ,"The Message is not a SUBSCRIPTION Message");
        throw new IncorrectMessageTypeException(exString);
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "makeInboundSubscriptionMessage");
      return subMessage;
    }