docs: public Object getReportOption(String propName, SIBusMessage coreMsg) {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "getReportOption", new Object[]{propName, coreMsg});
      Object result = null;
  
      if(propName.equals(ApiJmsConstants.REPORT_EXCEPTION_PROPERTY)) {
        Byte value = coreMsg.getReportException();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Byte returned from core message getReportException():" + value);
        if(value != null) {
          byte propValue = value.byteValue();
          if (propValue == byte_REPORT_NO_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_EXCEPTION);
          }
          else if (propValue == byte_REPORT_WITH_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_EXCEPTION_WITH_DATA);
          }
          else if(propValue == byte_REPORT_WITH_FULL_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_EXCEPTION_WITH_FULL_DATA);
          }
          else {
            if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.debug(this, tc, "Unexpected property value received: "+value);
            result = null;
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.REPORT_EXPIRATION_PROPERTY)) {
        Byte value = coreMsg.getReportExpiry();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Byte returned from core message getReportExpiry():" + value);
        if(value != null) {
          byte propValue = value.byteValue();
          if (propValue == byte_REPORT_NO_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_EXPIRATION);
          }
          else if (propValue == byte_REPORT_WITH_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_EXPIRATION_WITH_DATA);
          }
          else if(propValue == byte_REPORT_WITH_FULL_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_EXPIRATION_WITH_FULL_DATA);
          }
          else {
            if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Unexpected property value received: "+value);
            result = null;
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.REPORT_COA_PROPERTY)) {
        Byte value = coreMsg.getReportCOA();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Byte returned from core message getReportCOA():" + value);
        if(value != null) {
          byte propValue = value.byteValue();
          if (propValue == byte_REPORT_NO_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_COA);
          }
          else if (propValue == byte_REPORT_WITH_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_COA_WITH_DATA);
          }
          else if(propValue == byte_REPORT_WITH_FULL_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_COA_WITH_FULL_DATA);
          }
          else {
            if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Unexpected property value received: "+value);
            result = null;
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.REPORT_COD_PROPERTY)) {
        Byte value = coreMsg.getReportCOD();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Byte returned from core message getReportCOD():" + value);
        if(value != null) {
          byte propValue = value.byteValue();
          if (propValue == byte_REPORT_NO_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_COD);
          }
          else if (propValue == byte_REPORT_WITH_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_COD_WITH_DATA);
          }
          else if(propValue == byte_REPORT_WITH_FULL_DATA) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_COD_WITH_FULL_DATA);
          }
          else {
            if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Unexpected property value received: "+value);
            result = null;
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.REPORT_PAN_PROPERTY)) {
        Boolean value = coreMsg.getReportPAN();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Boolean returned from core message getReportPAN():" + value);
        if(value != null) {
          boolean propValue = value.booleanValue();
          if (propValue) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_PAN);
          }
          else {
            result = Integer.valueOf(ApiJmsConstants.MQRO_NONE);
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.REPORT_NAN_PROPERTY)) {
        Boolean value = coreMsg.getReportNAN();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Boolean returned from core message getReportNAN():" + value);
        if(value != null) {
          boolean propValue = value.booleanValue();
          if (propValue) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_NAN);
          }
          else {
            result = Integer.valueOf(ApiJmsConstants.MQRO_NONE);
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.REPORT_MSGID_PROPERTY)) {
        Boolean value = coreMsg.getReportPassMsgId();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Boolean returned from core message getReportPassMsgId():" + value);
        if(value != null) {
          boolean propValue = value.booleanValue();
          if (propValue) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_PASS_MSG_ID);
          }
          else {
            result = Integer.valueOf(ApiJmsConstants.MQRO_NEW_MSG_ID);
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.REPORT_CORRELID_PROPERTY)) {
        Boolean value = coreMsg.getReportPassCorrelId();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Boolean returned from core message getReportPassCorrelId():" + value);
        if(value != null) {
          boolean propValue = value.booleanValue();
          if (propValue) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_PASS_CORREL_ID);
          }
          else {
            result = Integer.valueOf(ApiJmsConstants.MQRO_COPY_MSG_ID_TO_CORREL_ID);
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.REPORT_DISCARD_PROPERTY)) {
        Boolean value = coreMsg.getReportDiscardMsg();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Boolean returned from core message getReportDiscardMsg():" + value);
        if(value != null) {
          boolean propValue = value.booleanValue();
          if (propValue) {
            result = Integer.valueOf(ApiJmsConstants.MQRO_DISCARD_MSG);
          }
          else {
            result = Integer.valueOf(ApiJmsConstants.MQRO_NONE);
          }
        }
      }
  
      else if(propName.equals(ApiJmsConstants.FEEDBACK_PROPERTY)) {
        Integer value = coreMsg.getReportFeedback();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Byte returned from core message getReportFeedback():" + value);
        if(value != null) {
          // Need to initialise the sharedUtils?
          if (utils == null) {
            try {
              utils = JmsInternalsFactory.getSharedUtils();
            } catch (JMSException e) {
              // No FFDC code needed
              FFDCFilter.processException(e,"com.ibm.ws.sib.api.jms.impl.ReportMessageConverter","getReportOption#1"
                                         ,new Object[] {propName, coreMsg});
              return null; // Since we are unable to convert the value (consistent
                           // with original failure mode,
              //   but I think I would prefer to throw an exception).
            }
          }
          result = utils.convertJSFeedbackToMQ(value.intValue());
        }
      }
  
      else if(propName.equals(ApiJmsConstants.MSG_TYPE_PROPERTY)) {
  //    TODO Support JMS_IBM_MsgType properly - d256740
        Integer value = coreMsg.getReportFeedback();
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Value returned from core message getReportFeedback():" + value);
        if(value != null) {
          int propValue = value.intValue();
          if(propValue != ApiJmsConstants.MQFB_NONE) {
            result = Integer.valueOf(ApiJmsConstants.MQMT_REPORT);
          }
          else {
            if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.debug(this, tc, "byte returned from getReportFeedback() is not one of the expected values");
            result = null;
          }
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "getReportOption",  result);
      return result;
    }