/**
     * Adds a <tt>payload-type</tt> element defined by XEP-0167: Jingle RTP Sessions to this
     * <tt>channel</tt>.
     *
     * @param payloadType the <tt>payload-type</tt> element to be added to this <tt>channel</tt>
     * @return <tt>true</tt> if the list of <tt>payload-type</tt> elements associated with this
     *     <tt>channel</tt> has been modified as part of the method call; otherwise, <tt>false</tt>
     * @throws NullPointerException if the specified <tt>payloadType</tt> is <tt>null</tt>
     */
    public boolean addPayloadType(PayloadTypePacketExtension payloadType) {
      if (payloadType == null) throw new NullPointerException("payloadType");

      // Make sure that the COLIBRI namespace is used.
      payloadType.setNamespace(null);
      for (ParameterPacketExtension p : payloadType.getParameters()) p.setNamespace(null);

      return payloadTypes.contains(payloadType) ? false : payloadTypes.add(payloadType);
    }
    @Override
    protected void printContent(StringBuilder xml) {
      List<PayloadTypePacketExtension> payloadTypes = getPayloadTypes();
      List<SourcePacketExtension> sources = getSources();
      int[] ssrcs = getSSRCs();

      for (PayloadTypePacketExtension payloadType : payloadTypes) xml.append(payloadType.toXML());

      for (SourcePacketExtension source : sources) xml.append(source.toXML());

      for (int i = 0; i < ssrcs.length; i++) {
        xml.append('<')
            .append(SSRC_ELEMENT_NAME)
            .append('>')
            .append(Long.toString(ssrcs[i] & 0xFFFFFFFFL))
            .append("</")
            .append(SSRC_ELEMENT_NAME)
            .append('>');
      }
    }