package com.mechinn.android.ouralliance.gson.frc2015; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonDeserializer; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParseException; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import com.mechinn.android.ouralliance.data.Match; import com.mechinn.android.ouralliance.data.frc2015.MatchScouting2015; import com.mechinn.android.ouralliance.data.frc2015.TeamScouting2015; import com.mechinn.android.ouralliance.gson.OurAllianceGson; import java.lang.reflect.Type; import java.util.Date; /** * Created by mechinn on 3/10/15. */ public class MatchScouting2015Adapter implements JsonSerializer<MatchScouting2015>, JsonDeserializer<MatchScouting2015> { @Override public MatchScouting2015 deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { MatchScouting2015 scouting = new MatchScouting2015(); JsonObject object = json.getAsJsonObject(); scouting.setModified(new Date(object.get(MatchScouting2015.MODIFIED).getAsLong())); scouting.setMatch(OurAllianceGson.BUILDER.fromJson(object.get(MatchScouting2015.MATCH), Match.class)); scouting.setAlliance(object.get(MatchScouting2015.ALLIANCE).getAsBoolean()); scouting.setPosition(object.get(MatchScouting2015.POSITION).getAsInt()); JsonElement element = object.get(MatchScouting2015.NOTES); if(null!=element) { scouting.setNotes(element.getAsString()); } scouting.setTeamScouting2015(OurAllianceGson.BUILDER.fromJson(object.get(MatchScouting2015.TEAM), TeamScouting2015.class)); element = object.get(MatchScouting2015.NOTES); if(null!=element) { scouting.setNotes(element.getAsString()); } element = object.get(MatchScouting2015.AUTO_STACKED); if(null!=element) { scouting.setAutoStacked(element.getAsBoolean()); } element = object.get(MatchScouting2015.AUTO_TOTES); if(null!=element) { scouting.setAutoTotes(element.getAsInt()); } element = object.get(MatchScouting2015.AUTO_CONTAINERS); if(null!=element) { scouting.setAutoContainers(element.getAsInt()); } element = object.get(MatchScouting2015.AUTO_LANDFILL); if(null!=element) { scouting.setAutoLandfill(element.getAsInt()); } element = object.get(MatchScouting2015.AUTO_MOVE); if(null!=element) { scouting.setAutoMove(element.getAsFloat()); } element = object.get(MatchScouting2015.COOP); if(null!=element) { scouting.setCoop(element.getAsBoolean()); } element = object.get(MatchScouting2015.TOTES); if(null!=element) { scouting.setTotes(element.getAsInt()); } element = object.get(MatchScouting2015.CONTAINERS); if(null!=element) { scouting.setContainers(element.getAsInt()); } element = object.get(MatchScouting2015.LITTER); if(null!=element) { scouting.setLitter(element.getAsInt()); } element = object.get(MatchScouting2015.FOULS); if(null!=element) { scouting.setFouls(element.getAsInt()); } element = object.get(MatchScouting2015.HUMAN_ATTEMPT); if(null!=element) { scouting.setHumanAttempt(element.getAsInt()); } element = object.get(MatchScouting2015.HUMAN_SUCCESS); if(null!=element) { scouting.setHumanSuccess(element.getAsInt()); } return scouting; } @Override public JsonElement serialize(MatchScouting2015 src, Type typeOfSrc, JsonSerializationContext context) { JsonObject object = new JsonObject(); object.addProperty(MatchScouting2015.MODIFIED,src.getModified().getTime()); object.add(MatchScouting2015.MATCH, OurAllianceGson.BUILDER.toJsonTree(src.getMatch())); object.addProperty(MatchScouting2015.ALLIANCE, src.isAlliance()); object.addProperty(MatchScouting2015.POSITION, src.getPosition()); object.addProperty(MatchScouting2015.NOTES, src.getNotes()); object.add(MatchScouting2015.TEAM, OurAllianceGson.BUILDER.toJsonTree(src.getTeamScouting2015())); object.addProperty(MatchScouting2015.AUTO_STACKED, src.getAutoStacked()); object.addProperty(MatchScouting2015.AUTO_TOTES, src.getAutoTotes()); object.addProperty(MatchScouting2015.AUTO_CONTAINERS, src.getAutoContainers()); object.addProperty(MatchScouting2015.AUTO_LANDFILL, src.getAutoLandfill()); object.addProperty(MatchScouting2015.AUTO_MOVE, src.getAutoMove()); object.addProperty(MatchScouting2015.COOP, src.getCoop()); object.addProperty(MatchScouting2015.TOTES, src.getTotes()); object.addProperty(MatchScouting2015.CONTAINERS, src.getContainers()); object.addProperty(MatchScouting2015.LITTER, src.getLitter()); object.addProperty(MatchScouting2015.FOULS, src.getFouls()); object.addProperty(MatchScouting2015.HUMAN_ATTEMPT, src.getHumanAttempt()); object.addProperty(MatchScouting2015.HUMAN_SUCCESS, src.getHumanSuccess()); return object; } }