package com.newhive.scammerradar.classes;

import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;

public class PlayerMapAdapter implements JsonSerializer<Map<String, Player>>, JsonDeserializer<Map<String, Player>> {
   public Map<String, Player> deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
      JsonArray playerMapJsonArray = json.getAsJsonArray();
      Map<String, Player> playerMap = new HashMap();
      playerMapJsonArray.forEach((jsonElement) -> {
         Player entry = (Player)context.deserialize(jsonElement, Player.class);
         playerMap.put(entry.getName().toLowerCase(), entry);
      });
      return playerMap;
   }

   public JsonElement serialize(Map<String, Player> playerMap, Type typeOfSrc, JsonSerializationContext context) {
      return context.serialize(playerMap.values());
   }
}
