docs: @Override
      public final boolean propertyExists(String name) {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "propertyExists", name);
  
          boolean result = false;
  
          /* Got to check Maelstrom's transportVersion first as performance for it */
          /* is critical. */
          if (name.equals(MfpConstants.PRP_TRANSVER) && isTransportVersionSet()) {
              result = true;
          }
  
          /* Next try the user property map as the most likely */
          else if ((mayHaveJmsUserProperties()) && (getJmsUserPropertyMap().containsKey(name))) {
              result = true;
          }
  
          /* If name starts with JMS it may be a smoke-and-mirrors property */
          else if (name.startsWith(JMS_PREFIX)) {
  
              /* If it is a JMSX property.... */
              if (name.charAt(JMS_LENGTH) == JMSX_EXTRA_PREFIX) {
                  int count = name.length() - JMSX_LENGTH;
  
                  if (name.regionMatches(JMSX_LENGTH, SIProperties.JMSXDeliveryCount, JMSX_LENGTH, count)) {
                      if (isSent())
                          result = true;
                  }
                  else if (name.regionMatches(JMSX_LENGTH, SIProperties.JMSXAppID, JMSX_LENGTH, count)) {
                      if (getHdr2().getChoiceField(JsHdr2Access.XAPPID) != JsHdr2Access.IS_XAPPID_EMPTY)
                          result = true;
                  }
                  else if (name.regionMatches(JMSX_LENGTH, SIProperties.JMSXUserID, JMSX_LENGTH, count)) {
                      if (getUserid() != null)
                          result = true;
                  }
                  /* The other supported JMSX properties just live in the system map */
                  else if (mayHaveMappedJmsSystemProperties()) {
                      result = getJmsSystemPropertyMap().containsKey(name);
                  }
  
              }
              /* All the remaining header properties start with JMS_IBM_ */
              else if (name.startsWith(JMS_IBM_EXTRA_PREFIX, JMS_LENGTH)) {
                  int count;
  
                  /* First check for the Report ones */
                  if (name.regionMatches(JMS_IBM_LENGTH, REPORT, 0, REPORT_LENGTH)) {
  
                      count = name.length() - REPORT_OFFSET;
  
                      if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_Expiration, REPORT_OFFSET, count)) {
                          if (getHdr2().getChoiceField(JsHdr2Access.REPORTEXPIRY) != JsHdr2Access.IS_REPORTEXPIRY_UNSET)
                              result = true;
                      }
                      else if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_COA, REPORT_OFFSET, count)) {
                          if (getHdr2().getChoiceField(JsHdr2Access.REPORTCOA) != JsHdr2Access.IS_REPORTCOA_UNSET)
                              result = true;
                      }
                      else if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_COD, REPORT_OFFSET, count)) {
                          if (getHdr2().getChoiceField(JsHdr2Access.REPORTCOD) != JsHdr2Access.IS_REPORTCOD_UNSET)
                              result = true;
                      }
                      else if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_Exception, REPORT_OFFSET, count)) {
                          if (getApi().getChoiceField(JsApiAccess.REPORTEXCEPTION) != JsApiAccess.IS_REPORTEXCEPTION_UNSET)
                              result = true;
                      }
                      else if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_PAN, REPORT_OFFSET, count)) {
                          if (getApi().getChoiceField(JsApiAccess.REPORTPAN) != JsApiAccess.IS_REPORTPAN_UNSET)
                              result = true;
                      }
                      else if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_NAN, REPORT_OFFSET, count)) {
                          if (getApi().getChoiceField(JsApiAccess.REPORTNAN) != JsApiAccess.IS_REPORTNAN_UNSET)
                              result = true;
                      }
                      else if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_Pass_Msg_ID, REPORT_OFFSET, count)) {
                          if (getApi().getChoiceField(JsApiAccess.REPORTPASSMSGID) != JsApiAccess.IS_REPORTPASSMSGID_UNSET)
                              result = true;
                      }
                      else if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_Pass_Correl_ID, REPORT_OFFSET, count)) {
                          if (getApi().getChoiceField(JsApiAccess.REPORTPASSCORRELID) != JsApiAccess.IS_REPORTPASSCORRELID_UNSET)
                              result = true;
                      }
                      else if (name.regionMatches(REPORT_OFFSET, SIProperties.JMS_IBM_Report_Discard_Msg, REPORT_OFFSET, count)) {
                          if (getApi().getChoiceField(JsApiAccess.REPORTDISCARDMSG) != JsApiAccess.IS_REPORTDISCARDMSG_UNSET)
                              result = true;
                      }
  
                  }
                  else {
                      /* Then try the other smoke-and-mirrors ones */
                      count = name.length() - JMS_IBM_LENGTH;
  
                      if (name.regionMatches(JMS_IBM_LENGTH, SIProperties.JMS_IBM_ExceptionReason, JMS_IBM_LENGTH, count)) {
                          if (getHdr2().getChoiceField(JsHdr2Access.EXCEPTION) != JsHdr2Access.IS_EXCEPTION_EMPTY)
                              result = true;
                      }
                      else if (name.regionMatches(JMS_IBM_LENGTH, SIProperties.JMS_IBM_ExceptionTimestamp, JMS_IBM_LENGTH, count)) {
                          if (getHdr2().getChoiceField(JsHdr2Access.EXCEPTION) != JsHdr2Access.IS_EXCEPTION_EMPTY)
                              result = true;
                      }
                      else if (name.regionMatches(JMS_IBM_LENGTH, SIProperties.JMS_IBM_ExceptionMessage, JMS_IBM_LENGTH, count)) {
                          if (getHdr2().getChoiceField(JsHdr2Access.EXCEPTION) != JsHdr2Access.IS_EXCEPTION_EMPTY)
                              result = true;
                      }
                      else if (name.regionMatches(JMS_IBM_LENGTH, SIProperties.JMS_IBM_ExceptionProblemDestination, JMS_IBM_LENGTH, count)) {
                          if (getExceptionProblemDestination() != null)
                              result = true;
                      }
                      else if (name.regionMatches(JMS_IBM_LENGTH, SIProperties.JMS_IBM_ExceptionProblemSubscription, JMS_IBM_LENGTH, count)) {
                          if (getExceptionProblemSubscription() != null)
                              result = true;
                      }
                      else if (name.regionMatches(JMS_IBM_LENGTH, SIProperties.JMS_IBM_Feedback, JMS_IBM_LENGTH, count)) {
                          if ((getApi().getChoiceField(JsApiAccess.REPORTFEEDBACK) != JsApiAccess.IS_REPORTFEEDBACK_UNSET) ||
                              (getApi().getChoiceField(JsApiAccess.REPORTFEEDBACKINT) != JsApiAccess.IS_REPORTFEEDBACKINT_UNSET))
                              result = true;
                      }
                      else if (name.regionMatches(JMS_IBM_LENGTH, SIProperties.JMS_IBM_System_MessageID, JMS_IBM_LENGTH, count)) {
                          if (getSystemMessageId() != null)
                              result = true;
                      }
                      else if (name.regionMatches(JMS_IBM_LENGTH, SIProperties.JMS_IBM_ArmCorrelator, JMS_IBM_LENGTH, count)) {
                          if (getARMCorrelator() != null)
                              result = true;
                      }
  
                      /* The other supported JMS_IBM_ properties just live in one (or both) of the maps */
                      else {
                          if (mayHaveMappedJmsSystemProperties()) {
                              result = getJmsSystemPropertyMap().containsKey(name);
                          }
                          if (result == false) {
                              result = getMQMDSetPropertiesMap().containsKey(name);
                          }
                      }
                  } // end of else of if Report
              } // end of if JMS_IBM_
  
              // JMS_TOG_ARM_Correlator
              else if (name.equals(SIProperties.JMS_TOG_ARM_Correlator)) {
                  if (getARMCorrelator() != null)
                      result = true;
              }
  
          } // end of if JMS
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "propertyExists", Boolean.valueOf(result));
          return result;
  
      }