PositionAdapter.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package TypeAdapter;
  2. import java.lang.reflect.Type;
  3. import com.google.gson.JsonDeserializationContext;
  4. import com.google.gson.JsonDeserializer;
  5. import com.google.gson.JsonElement;
  6. import com.google.gson.JsonParseException;
  7. import com.google.gson.JsonPrimitive;
  8. import com.google.gson.JsonSerializationContext;
  9. import com.google.gson.JsonSerializer;
  10. import classes.Position;
  11. public class PositionAdapter implements JsonSerializer<Position>, JsonDeserializer<Position> {
  12. @Override
  13. public JsonElement serialize(Position arg0, Type arg1, JsonSerializationContext arg2) {
  14. // TODO Auto-generated method stub
  15. return new JsonPrimitive(arg0.x + ":" + arg0.y);
  16. }
  17. @Override
  18. public Position deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2) {
  19. // TODO Auto-generated method stub
  20. try {
  21. String arg = arg0.getAsString();
  22. int mid = arg.indexOf(':');
  23. int x = Integer.parseInt(arg.substring(0, mid));
  24. int y = Integer.parseInt(arg.substring(mid + 1, arg.length() - 1));
  25. return new Position(x, y);
  26. } catch (Exception e) {
  27. // TODO: handle exception
  28. }
  29. return new Position(-1, -1);
  30. }
  31. }