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