package com.faforever.client.remote.gson; import com.faforever.client.remote.domain.VictoryCondition; import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; public class VictoryConditionTypeAdapter extends TypeAdapter<VictoryCondition> { public static final VictoryConditionTypeAdapter INSTANCE = new VictoryConditionTypeAdapter(); private VictoryConditionTypeAdapter() { } @Override public void write(JsonWriter out, VictoryCondition victoryCondition) throws IOException { if (victoryCondition == null) { out.value("unknown"); } else { Object value = victoryCondition.getValue(); if (value instanceof Integer) { out.value((int) value); } else { out.value((String) value); } } } @Override public VictoryCondition read(JsonReader in) throws IOException { String victoryCondition = in.nextString(); if (victoryCondition == null || "unknown".equals(victoryCondition)) { return VictoryCondition.UNKNOWN; } return VictoryCondition.fromNumber(Integer.valueOf(victoryCondition)); } }