1package im.conversations.android.xmpp.model.streams;
 2
 3import eu.siacs.conversations.xml.Namespace;
 4import im.conversations.android.annotation.XmlElement;
 5import im.conversations.android.xmpp.model.StreamElement;
 6import im.conversations.android.xmpp.model.StreamFeature;
 7import im.conversations.android.xmpp.model.capabilties.EntityCapabilities;
 8import im.conversations.android.xmpp.model.register.RegisterStreamFeature;
 9import im.conversations.android.xmpp.model.sm.StreamManagement;
10import im.conversations.android.xmpp.model.token.Register;
11
12@XmlElement
13public class Features extends StreamElement implements EntityCapabilities {
14    public Features() {
15        super(Features.class);
16    }
17
18    public boolean streamManagement() {
19        return hasStreamFeature(StreamManagement.class);
20    }
21
22    public boolean clientStateIndication() {
23        return this.hasChild("csi", Namespace.CSI);
24    }
25
26    public boolean register() {
27        return hasStreamFeature(RegisterStreamFeature.class);
28    }
29
30    public boolean preAuthenticatedInBandRegistration() {
31        return hasStreamFeature(Register.class);
32    }
33
34    public boolean hasStreamFeature(final Class<? extends StreamFeature> clazz) {
35        return hasExtension(clazz);
36    }
37}