package com.mechinn.android.ouralliance.gson.frc2015; import android.database.Cursor; import com.activeandroid.annotation.Column; import com.activeandroid.annotation.Table; 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.MatchScouting; import com.mechinn.android.ouralliance.data.Team; import com.mechinn.android.ouralliance.data.TeamScouting; import com.mechinn.android.ouralliance.data.Wheel; import com.mechinn.android.ouralliance.data.frc2015.MatchScouting2015; 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; import java.util.List; import de.greenrobot.event.EventBus; import de.greenrobot.event.util.AsyncExecutor; public class TeamScouting2015Adapter implements JsonSerializer<TeamScouting2015>, JsonDeserializer<TeamScouting2015> { @Override public TeamScouting2015 deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { TeamScouting2015 scouting = new TeamScouting2015(); JsonObject object = json.getAsJsonObject(); scouting.setModified(new Date(object.get(TeamScouting2015.MODIFIED).getAsLong())); scouting.setTeam(OurAllianceGson.BUILDER.fromJson(object.get(TeamScouting2015.TEAM), Team.class)); JsonElement element = object.get(TeamScouting2015.NOTES); if(null!=element) { scouting.setNotes(element.getAsString()); } element = object.get(TeamScouting2015.ORIENTATION); if(null!=element) { scouting.setOrientation(element.getAsString()); } element = object.get(TeamScouting2015.DRIVE_TRAIN); if(null!=element) { scouting.setDriveTrain(element.getAsString()); } element = object.get(TeamScouting2015.WIDTH); if(null!=element) { scouting.setWidth(element.getAsDouble()); } element = object.get(TeamScouting2015.LENGTH); if(null!=element) { scouting.setLength(element.getAsDouble()); } element = object.get(TeamScouting2015.HEIGHT); if(null!=element) { scouting.setHeight(element.getAsDouble()); } element = object.get(TeamScouting2015.COOP); if(null!=element) { scouting.setCoop(element.getAsBoolean()); }element = object.get(TeamScouting2015.DRIVER_EXPERIENCE); if(null!=element) { scouting.setDriverExperience(element.getAsFloat()); } element = object.get(TeamScouting2015.PICKUP_MECHANISM); if(null!=element) { scouting.setPickupMechanism(element.getAsString()); } element = object.get(TeamScouting2015.MAX_TOTE_STACK); if(null!=element) { scouting.setMaxToteStack(element.getAsInt()); } element = object.get(TeamScouting2015.MAX_CONTAINER_STACK); if(null!=element) { scouting.setMaxTotesStackContainer(element.getAsInt()); } element = object.get(TeamScouting2015.MAX_TOTES_AND_CONTAINER_LITTER); if(null!=element) { scouting.setMaxTotesAndContainerLitter(element.getAsInt()); } element = object.get(TeamScouting2015.HUMAN_PLAYER); if(null!=element) { scouting.setHumanPlayer(element.getAsFloat()); } element = object.get(TeamScouting2015.NO_AUTO); if(null!=element) { scouting.setNoAuto(element.getAsBoolean()); } element = object.get(TeamScouting2015.DRIVE_AUTO); if(null!=element) { scouting.setDriveAuto(element.getAsBoolean()); } element = object.get(TeamScouting2015.TOTE_AUTO); if(null!=element) { scouting.setContainerAuto(element.getAsBoolean()); } element = object.get(TeamScouting2015.STACKED_AUTO); if(null!=element) { scouting.setStackedAuto(element.getAsBoolean()); } element = object.get(TeamScouting2015.LANDFILL_AUTO); if(null!=element) { scouting.setLandfillAuto(element.getAsInt()); } return scouting; } @Override public JsonElement serialize(TeamScouting2015 src, Type typeOfSrc, JsonSerializationContext context) { JsonObject object = new JsonObject(); object.addProperty(TeamScouting2015.MODIFIED,src.getModified().getTime()); object.add(TeamScouting2015.TEAM, OurAllianceGson.BUILDER.toJsonTree(src.getTeam())); object.addProperty(TeamScouting2015.NOTES, src.getNotes()); object.addProperty(TeamScouting2015.ORIENTATION, src.getOrientation()); object.addProperty(TeamScouting2015.DRIVE_TRAIN, src.getDriveTrain()); object.addProperty(TeamScouting2015.WIDTH, src.getWidth()); object.addProperty(TeamScouting2015.LENGTH, src.getLength()); object.addProperty(TeamScouting2015.HEIGHT, src.getHeight()); object.addProperty(TeamScouting2015.COOP, src.getCoop()); object.addProperty(TeamScouting2015.DRIVER_EXPERIENCE, src.getDriverExperience()); object.addProperty(TeamScouting2015.PICKUP_MECHANISM, src.getPickupMechanism()); object.addProperty(TeamScouting2015.MAX_TOTE_STACK, src.getMaxToteStack()); object.addProperty(TeamScouting2015.MAX_CONTAINER_STACK, src.getMaxTotesStackContainer()); object.addProperty(TeamScouting2015.MAX_TOTES_AND_CONTAINER_LITTER, src.getMaxTotesAndContainerLitter()); object.addProperty(TeamScouting2015.HUMAN_PLAYER, src.getHumanPlayer()); object.addProperty(TeamScouting2015.NO_AUTO,src.getNoAuto()); object.addProperty(TeamScouting2015.DRIVE_AUTO,src.getDriveTrain()); object.addProperty(TeamScouting2015.TOTE_AUTO,src.getToteAuto()); object.addProperty(TeamScouting2015.CONTAINER_AUTO,src.getContainerAuto()); object.addProperty(TeamScouting2015.STACKED_AUTO,src.getStackedAuto()); object.addProperty(TeamScouting2015.LANDFILL_AUTO,src.getLandfillAuto()); return object; } }