docs: public Destination createDestinationFromString(String uri, DestType destType) throws JMSException {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "createDestinationFromString", new Object[]{uri, destType});
      JmsDestination result = null;
  
      // throw exception if URI begins with illegal string
      if (uri.startsWith(JmsDestinationImpl.DEST_PREFIX)) {
        throw (JMSException) JmsErrorUtils.newThrowable(
          JMSException.class,
          "RESERVED_DEST_PREFIX_CWSIA0383",
          new Object[] { JmsDestinationImpl.DEST_PREFIX, uri },
          tc);
      }
  
      // Decide which method should process the URI, determined on its prefix.
      if (uri.startsWith(JmsQueueImpl.QUEUE_PREFIX) || uri.startsWith(JmsTopicImpl.TOPIC_PREFIX)) {
        result = processURI(uri, QM_ERROR, null);
      }
      else {
        if (destType == DestType.QUEUE) {
          JmsQueueImpl q = new JmsQueueImpl();
          q.setQueueName(uri);
          result = q;
        }
        else {
          // processShortopicForm processes the optional @topicspace element.
          result = processShortTopicForm(uri);
        }
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "createDestinationFromString",  result);
      return result;
    }