CryptoMessage v1.3.2版本的 MD5 值为:66c611ce56a11450659dc23697562928
以下内容为反编译后的 MUCUser.java 源代码,内容仅作参考
package org.jivesoftware.smackx.muc.packet;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.xml.namespace.QName;
import org.jivesoftware.smack.packet.ExtensionElement;
import org.jivesoftware.smack.packet.FullyQualifiedElement;
import org.jivesoftware.smack.packet.NamedElement;
import org.jivesoftware.smack.packet.Stanza;
import org.jivesoftware.smack.packet.XmlEnvironment;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.util.XmlStringBuilder;
import org.jxmpp.jid.EntityBareJid;
import org.jxmpp.jid.EntityFullJid;
import org.jxmpp.jid.EntityJid;
public class MUCUser implements ExtensionElement {
public static final String ELEMENT = "x";
public static final String NAMESPACE = "http://jabber.org/protocol/muc#user";
public static final QName QNAME = new QName(NAMESPACE, "x");
private Decline decline;
private Destroy destroy;
private Invite invite;
private MUCItem item;
private String password;
private final Set<Status> statusCodes = new HashSet(4);
@Override
public String getElementName() {
return "x";
}
@Override
public String getNamespace() {
return NAMESPACE;
}
@Override
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
XmlStringBuilder xmlStringBuilder = new XmlStringBuilder((FullyQualifiedElement) this);
xmlStringBuilder.rightAngleBracket();
xmlStringBuilder.optElement(getInvite());
xmlStringBuilder.optElement(getDecline());
xmlStringBuilder.optElement(getItem());
xmlStringBuilder.optElement("password", getPassword());
xmlStringBuilder.append(this.statusCodes);
xmlStringBuilder.optElement(getDestroy());
xmlStringBuilder.closeElement(this);
return xmlStringBuilder;
}
public Invite getInvite() {
return this.invite;
}
public Decline getDecline() {
return this.decline;
}
public MUCItem getItem() {
return this.item;
}
public String getPassword() {
return this.password;
}
public Set<Status> getStatus() {
return this.statusCodes;
}
public boolean hasStatus() {
return !this.statusCodes.isEmpty();
}
public Destroy getDestroy() {
return this.destroy;
}
public void setInvite(Invite invite) {
this.invite = invite;
}
public void setDecline(Decline decline) {
this.decline = decline;
}
public void setItem(MUCItem mUCItem) {
this.item = mUCItem;
}
public void setPassword(String str) {
this.password = str;
}
public void addStatusCodes(Set<Status> set) {
this.statusCodes.addAll(set);
}
public void addStatusCode(Status status) {
this.statusCodes.add(status);
}
public void setDestroy(Destroy destroy) {
this.destroy = destroy;
}
@Deprecated
public static MUCUser getFrom(Stanza stanza) {
return from(stanza);
}
public static MUCUser from(Stanza stanza) {
return (MUCUser) stanza.getExtension(MUCUser.class);
}
public static class Invite implements NamedElement {
public static final String ELEMENT = "invite";
private final EntityJid from;
private final String reason;
private final EntityBareJid to;
@Override
public String getElementName() {
return ELEMENT;
}
public Invite(String str, EntityFullJid entityFullJid) {
this(str, entityFullJid, null);
}
public Invite(String str, EntityBareJid entityBareJid) {
this(str, null, entityBareJid);
}
public Invite(String str, EntityJid entityJid, EntityBareJid entityBareJid) {
this.reason = str;
this.from = entityJid;
this.to = entityBareJid;
}
public EntityJid getFrom() {
return this.from;
}
public String getReason() {
return this.reason;
}
public EntityBareJid getTo() {
return this.to;
}
@Override
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
XmlStringBuilder xmlStringBuilder = new XmlStringBuilder(this);
xmlStringBuilder.optAttribute("to", getTo());
xmlStringBuilder.optAttribute("from", getFrom());
xmlStringBuilder.rightAngleBracket();
xmlStringBuilder.optElement("reason", getReason());
xmlStringBuilder.closeElement(this);
return xmlStringBuilder;
}
}
public static class Decline implements ExtensionElement {
public static final String ELEMENT = "decline";
private final EntityBareJid from;
private final String reason;
private final EntityBareJid to;
@Override
public String getElementName() {
return ELEMENT;
}
@Override
public String getNamespace() {
return MUCUser.NAMESPACE;
}
public Decline(String str, EntityBareJid entityBareJid) {
this(str, null, entityBareJid);
}
public Decline(String str, EntityBareJid entityBareJid, EntityBareJid entityBareJid2) {
this.reason = str;
this.from = entityBareJid;
this.to = entityBareJid2;
}
public EntityBareJid getFrom() {
return this.from;
}
public String getReason() {
return this.reason;
}
public EntityBareJid getTo() {
return this.to;
}
@Override
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
XmlStringBuilder xmlStringBuilder = new XmlStringBuilder(this, xmlEnvironment);
xmlStringBuilder.optAttribute("to", getTo());
xmlStringBuilder.optAttribute("from", getFrom());
xmlStringBuilder.rightAngleBracket();
xmlStringBuilder.optElement("reason", getReason());
xmlStringBuilder.closeElement(this);
return xmlStringBuilder;
}
}
public static final class Status implements NamedElement {
public static final String ELEMENT = "status";
private final Integer code;
private static final Map<Integer, Status> statusMap = new HashMap(8);
public static final Status PRESENCE_TO_SELF_110 = create((Integer) 110);
public static final Status ROOM_CREATED_201 = create((Integer) 201);
public static final Status BANNED_301 = create((Integer) 301);
public static final Status NEW_NICKNAME_303 = create((Integer) 303);
public static final Status KICKED_307 = create(Integer.valueOf(XMPPTCPConnection.PacketWriter.UNACKKNOWLEDGED_STANZAS_QUEUE_SIZE_HIGH_WATER_MARK));
public static final Status REMOVED_AFFIL_CHANGE_321 = create((Integer) 321);
public static final Status REMOVED_FOR_TECHNICAL_REASONS_333 = create((Integer) 333);
@Override
public String getElementName() {
return "status";
}
public static Status create(String str) {
return create(Integer.valueOf(str));
}
public static Status create(Integer num) {
Status status;
Map<Integer, Status> map = statusMap;
synchronized (map) {
status = map.get(num);
if (status == null) {
status = new Status(num.intValue());
map.put(num, status);
}
}
return status;
}
private Status(int i) {
this.code = Integer.valueOf(i);
}
public int getCode() {
return this.code.intValue();
}
@Override
public XmlStringBuilder toXML(XmlEnvironment xmlEnvironment) {
XmlStringBuilder xmlStringBuilder = new XmlStringBuilder(this);
xmlStringBuilder.attribute("code", getCode());
xmlStringBuilder.closeEmptyElement();
return xmlStringBuilder;
}
public String toString() {
return this.code.toString();
}
public boolean equals(Object obj) {
if (obj != null && (obj instanceof Status)) {
return this.code.equals(Integer.valueOf(((Status) obj).getCode()));
}
return false;
}
public int hashCode() {
return this.code.intValue();
}
}
}