1package im.conversations.android.xmpp;
2
3import com.google.common.collect.Collections2;
4import im.conversations.android.xmpp.model.disco.info.Feature;
5import im.conversations.android.xmpp.model.disco.info.InfoQuery;
6import java.util.Collection;
7import java.util.List;
8
9public class ServiceDescription {
10 public final List<String> features;
11 public final Identity identity;
12
13 public ServiceDescription(List<String> features, Identity identity) {
14 this.features = features;
15 this.identity = identity;
16 }
17
18 public InfoQuery asInfoQuery() {
19 final var infoQuery = new InfoQuery();
20 final Collection<Feature> features =
21 Collections2.transform(
22 this.features,
23 sf -> {
24 final var feature = new Feature();
25 feature.setVar(sf);
26 return feature;
27 });
28 infoQuery.addExtensions(features);
29 final var identity =
30 infoQuery.addExtension(
31 new im.conversations.android.xmpp.model.disco.info.Identity());
32 identity.setIdentityName(this.identity.name);
33 identity.setCategory(this.identity.category);
34 identity.setType(this.identity.type);
35 return infoQuery;
36 }
37
38 public static class Identity {
39 public final String name;
40 public final String category;
41 public final String type;
42
43 public Identity(String name, String category, String type) {
44 this.name = name;
45 this.category = category;
46 this.type = type;
47 }
48 }
49}