package com.sissi.protocol.muc;
import java.util.UUID;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlValue;
import com.sissi.io.read.Metadata;
import com.sissi.protocol.Element;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.iq.IQ;
/**
* @author kim 2014年3月27日
*/
@Metadata(uri = Unique.XMLNS, localName = Unique.NAME)
public class Unique extends Protocol {
public final static String NAME = "unique";
public final static String XMLNS = "http://jabber.org/protocol/muc#unique";
@XmlAttribute
public String getXmlns() {
return Unique.XMLNS;
}
public UniqueSequence unique() {
return new UniqueSequence(this);
}
@XmlRootElement(name = Unique.NAME)
public static class UniqueSequence implements Element {
private Unique unique;
public UniqueSequence() {
super();
}
public UniqueSequence(Unique unique) {
super();
this.unique = unique;
}
@XmlValue
public String getValue() {
return UUID.randomUUID().toString();
}
@XmlAttribute
public String getXmlns() {
return Unique.XMLNS;
}
@Override
@XmlTransient
public String getId() {
return null;
}
@Override
public UniqueSequence setId(String id) {
return this;
}
@Override
@XmlTransient
public String getFrom() {
return null;
}
@Override
public UniqueSequence setFrom(String from) {
return this;
}
@Override
@XmlTransient
public String getTo() {
return null;
}
@Override
public UniqueSequence setTo(String to) {
return this;
}
@Override
@XmlTransient
public String getType() {
return null;
}
@Override
public UniqueSequence setType(String type) {
return this;
}
public Protocol parent() {
return this.unique.parent().cast(IQ.class).clear().add(this);
}
}
}