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}