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.Event; import com.mechinn.android.ouralliance.data.Match; import com.mechinn.android.ouralliance.data.Wheel; import com.mechinn.android.ouralliance.data.frc2015.TeamScouting2015; import com.mechinn.android.ouralliance.data.frc2015.Wheel2015; import com.mechinn.android.ouralliance.gson.OurAllianceGson; import java.lang.reflect.Type; import java.util.Date; public class Wheel2015Adapter implements JsonSerializer<Wheel2015>, JsonDeserializer<Wheel2015> { @Override public Wheel2015 deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Wheel2015 wheel = new Wheel2015(); JsonObject object = json.getAsJsonObject(); wheel.setModified(new Date(object.get(Wheel2015.MODIFIED).getAsLong())); wheel.setTeamScouting2015(OurAllianceGson.BUILDER.fromJson(object.get(Wheel2015.TEAM_SCOUTING), TeamScouting2015.class)); JsonElement element = object.get(Wheel2015.WHEEL_TYPE); if(null!=element) { wheel.setWheelType(element.getAsString()); } element = object.get(Wheel2015.WHEEL_SIZE); if(null!=element) { wheel.setWheelSize(element.getAsDouble()); } element = object.get(Wheel2015.WHEEL_COUNT); if(null!=element) { wheel.setWheelCount(element.getAsInt()); } return wheel; } @Override public JsonElement serialize(Wheel2015 src, Type typeOfSrc, JsonSerializationContext context) { JsonObject object = new JsonObject(); object.addProperty(Wheel2015.MODIFIED,src.getModified().getTime()); object.add(Wheel2015.TEAM_SCOUTING, OurAllianceGson.BUILDER.toJsonTree(src.getTeamScouting2015())); object.addProperty(Wheel2015.WHEEL_TYPE, src.getWheelType()); object.addProperty(Wheel2015.WHEEL_SIZE,src.getWheelSize()); object.addProperty(Wheel2015.WHEEL_COUNT,src.getWheelCount()); return object; } }