package org.jivesoftware.smack.packet;

import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import org.jivesoftware.smack.util.XmlStringBuilder;

public class Mechanisms implements ExtensionElement {
   public static final String ELEMENT = "mechanisms";
   public static final String NAMESPACE = "urn:ietf:params:xml:ns:xmpp-sasl";
   public final List<String> mechanisms = new LinkedList();

   public Mechanisms(String mechanism) {
      this.mechanisms.add(mechanism);
   }

   public Mechanisms(Collection<String> mechanisms) {
      this.mechanisms.addAll(mechanisms);
   }

   public String getElementName() {
      return "mechanisms";
   }

   public String getNamespace() {
      return "urn:ietf:params:xml:ns:xmpp-sasl";
   }

   public List<String> getMechanisms() {
      return Collections.unmodifiableList(this.mechanisms);
   }

   public XmlStringBuilder toXML() {
      XmlStringBuilder xml = new XmlStringBuilder(this);
      xml.rightAngleBracket();
      Iterator i$ = this.mechanisms.iterator();

      while(i$.hasNext()) {
         String mechanism = (String)i$.next();
         xml.element("mechanism", mechanism);
      }

      xml.closeElement((NamedElement)this);
      return xml;
   }
}
