code: private static int decodeBasicProperties(JmsDestination newDest, byte[] msgForm) throws JMSException {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "decodeBasicProperties", new Object[]{newDest, msgForm});
  
      int offset = 0;
  
      // The 2nd half of the first byte carries the DeliveryMode
      byte delMode = (byte)(msgForm[0] & DM_MASK);
      if (delMode == DM_PERSISTENT) {
        newDest.setDeliveryMode(ApiJmsConstants.DELIVERY_MODE_PERSISTENT);
      }
      else if (delMode == DM_NON_PERSISTENT) {
        newDest.setDeliveryMode(ApiJmsConstants.DELIVERY_MODE_NONPERSISTENT);
      }
      else {
        newDest.setDeliveryMode(ApiJmsConstants.DELIVERY_MODE_APP);
      }
  
      // Next we get a half-byte for priority
      byte priority = (byte)(msgForm[1] & PRIORITY_MASK);
      if (priority != PRIORITY_NOT_SET) {
        int pri = 0x0F & (priority >>> 4);
        newDest.setPriority(pri);
      }
  
      // Next we establish if we have a TimeToLive, & decode it if we have
      if ((msgForm[1] & TTL_SET) == TTL_SET) {
        long ttl = ArrayUtil.readLong(msgForm, 2);
        newDest.setTimeToLive(ttl);
        offset = 10;
      }
      else {
       offset = 2;
      };
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "decodeBasicProperties", offset);
      return offset;
    }
docs: decodeBasicProperties
  Decode the basic information to set the folloing attributes, if present, on to the new JmsDestination
  DeliveryMode
  Priority
  TimeToLive
  
  @param newDest              The new JmsDestination
  @param msgForm              A byte array containing the message form of the information
  
  @return                     The next offset for reading from the byte array