Bind2.java

 1package eu.siacs.conversations.xmpp.bind;
 2
 3import com.google.common.collect.Collections2;
 4
 5import java.util.Arrays;
 6import java.util.Collection;
 7import java.util.Collections;
 8
 9import eu.siacs.conversations.xml.Element;
10import eu.siacs.conversations.xml.Namespace;
11
12public class Bind2 {
13
14    public static final Collection<String> QUICKSTART_FEATURES = Arrays.asList(
15            Namespace.CARBONS,
16            Namespace.STREAM_MANAGEMENT
17    );
18
19    public static Collection<String> features(final Element inline) {
20        final Element inlineBind2 =
21                inline != null ? inline.findChild("bind", Namespace.BIND2) : null;
22        final Element inlineBind2Inline =
23                inlineBind2 != null ? inlineBind2.findChild("inline", Namespace.BIND2) : null;
24        if (inlineBind2 == null) {
25            return null;
26        }
27        if (inlineBind2Inline == null) {
28            return Collections.emptyList();
29        }
30        return Collections2.transform(
31                inlineBind2Inline.getChildren(), c -> c == null ? null : c.getAttribute("var"));
32    }
33}