Reactions.java

 1package im.conversations.android.xmpp.model.reactions;
 2
 3import com.google.common.base.Strings;
 4import com.google.common.collect.Collections2;
 5
 6import im.conversations.android.annotation.XmlElement;
 7import im.conversations.android.xmpp.model.Extension;
 8
 9import java.util.Collection;
10import java.util.Objects;
11
12@XmlElement
13public class Reactions extends Extension {
14
15    public Reactions() {
16        super(Reactions.class);
17    }
18
19    public Collection<String> getReactions() {
20        return Collections2.filter(
21                Collections2.transform(getExtensions(Reaction.class), Reaction::getContent),
22                r -> Objects.nonNull(Strings.nullToEmpty(r)));
23    }
24
25    public String getId() {
26        return Strings.emptyToNull(this.getAttribute("id"));
27    }
28
29    public void setId(String id) {
30        this.setAttribute("id", id);
31    }
32
33    public static Reactions to(final String id) {
34        final var reactions = new Reactions();
35        reactions.setId(id);
36        return reactions;
37    }
38}