X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/c41ac8e7a32e0eaa3ab8786be14da46f4c20a08a..27d9424f1e7f607ac2dfad5b2164d065ffb79ef7:/src/main/java/cli/JsonGroupStore.java diff --git a/src/main/java/cli/JsonGroupStore.java b/src/main/java/cli/JsonGroupStore.java deleted file mode 100644 index 29f9abfe..00000000 --- a/src/main/java/cli/JsonGroupStore.java +++ /dev/null @@ -1,50 +0,0 @@ -package cli; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.*; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class JsonGroupStore { - @JsonProperty("groups") - @JsonSerialize(using = JsonGroupStore.MapToListSerializer.class) - @JsonDeserialize(using = JsonGroupStore.GroupsDeserializer.class) - private Map groups = new HashMap<>(); - - private static final ObjectMapper jsonProcessot = new ObjectMapper(); - - void updateGroup(GroupInfo group) { - groups.put(Base64.encodeBytes(group.groupId), group); - } - - GroupInfo getGroup(byte[] groupId) { - return groups.get(Base64.encodeBytes(groupId)); - } - - public static class MapToListSerializer extends JsonSerializer> { - @Override - public void serialize(final Map value, final JsonGenerator jgen, final SerializerProvider provider) throws IOException { - jgen.writeObject(value.values()); - } - } - - public static class GroupsDeserializer extends JsonDeserializer> { - @Override - public Map deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException { - Map groups = new HashMap<>(); - JsonNode node = jsonParser.getCodec().readTree(jsonParser); - for (JsonNode n : node) { - GroupInfo g = jsonProcessot.treeToValue(n, GroupInfo.class); - groups.put(Base64.encodeBytes(g.groupId), g); - } - - return groups; - } - } -}