PositionAdapter.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package adapter;
  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.JsonPrimitive;
  7. import com.google.gson.JsonSerializationContext;
  8. import com.google.gson.JsonSerializer;
  9. import utility.Vector2Int;
  10. public class PositionAdapter implements JsonSerializer<Vector2Int>, JsonDeserializer<Vector2Int> {
  11. @Override
  12. public JsonElement serialize(Vector2Int arg0, Type arg1, JsonSerializationContext arg2) {
  13. return new JsonPrimitive(arg0.getX() + ":" + arg0.getY());
  14. }
  15. @Override
  16. public Vector2Int deserialize(JsonElement arg0, Type arg1, JsonDeserializationContext arg2) {
  17. try {
  18. String arg = arg0.getAsString();
  19. int mid = arg.indexOf(':');
  20. int x = Integer.parseInt(arg.substring(0, mid));
  21. int y = Integer.parseInt(arg.substring(mid + 1, arg.length()));
  22. return new Vector2Int(x, y);
  23. } catch (NumberFormatException e) {
  24. System.err.println(e);
  25. }
  26. return new Vector2Int(-1, -1);
  27. }
  28. }