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}