Reaction.java

 1package eu.siacs.conversations.entities;
 2
 3import com.google.common.base.Strings;
 4import com.google.common.reflect.TypeToken;
 5import com.google.gson.Gson;
 6import com.google.gson.JsonSyntaxException;
 7
 8import eu.siacs.conversations.xmpp.Jid;
 9
10import java.util.ArrayList;
11import java.util.Collection;
12import java.util.Collections;
13
14public class Reaction {
15
16    private static final Gson GSON = new Gson();
17
18    public final String reaction;
19    public final Jid jid;
20    public final String occupantId;
21
22    public Reaction(final String reaction, final Jid jid, final String occupantId) {
23        this.reaction = reaction;
24        this.jid = jid;
25        this.occupantId = occupantId;
26    }
27
28
29    public static String toString(final Collection<Reaction> reactions) {
30        return (reactions == null || reactions.isEmpty()) ? null : GSON.toJson(reactions);
31    }
32
33    public static Collection<Reaction> fromString(final String asString) {
34        if ( Strings.isNullOrEmpty(asString)) {
35            return Collections.emptyList();
36        }
37        try {
38            return GSON.fromJson(asString,new TypeToken<ArrayList<Reaction>>(){}.getType());
39        } catch (final JsonSyntaxException e) {
40            return Collections.emptyList();
41        }
42    }
43}