code: public static QueuedMessage createSIBQueuedMessage(SIMPQueuedMessageControllable qmc) {
  
          String id = null;
          int jsApproximateLength = 0;
          String name = null;
          String state = null;
          String transactionId = null;
          String type = null;
          String busSystemMessageId = null;
  
          id = qmc.getId();
          name = qmc.getName();
          state = null;
          transactionId = null;
  
          try {
              if (qmc.getState() != null) {
                  state = qmc.getState().toString();
              }
              transactionId = qmc.getTransactionId();
          } catch (SIMPException e) {
              // No FFDC code needed
          }
  
          try {
              JsMessage jsMessage = qmc.getJsMessage();
              jsApproximateLength = jsMessage.getApproximateLength();
              busSystemMessageId = jsMessage.getSystemMessageId();
              type = jsMessage.getJsMessageType().toString();
          } catch (SIMPControllableNotFoundException e) {
              // No FFDC code needed
          } catch (SIMPException e) {
              // No FFDC code needed
          }
  
          return new QueuedMessage(id, name, jsApproximateLength, state, transactionId, type, busSystemMessageId);
      }
docs: Create a SIBQueuedMessageImpl instance from the supplied
  SIMPQueuedMessageControllable.
  
  @param qmc
  @return