content: package com.airbnb.lottie.parser;
  
  import android.graphics.PointF;
  
  import com.airbnb.lottie.parser.moshi.JsonReader;
  
  import java.io.IOException;
  
  public class PointFParser implements ValueParser<PointF> {
    public static final PointFParser INSTANCE = new PointFParser();
  
    private PointFParser() {
    }
  
    @Override
    public PointF parse(JsonReader reader, float scale) throws IOException {
      JsonReader.Token token = reader.peek();
      if (token == JsonReader.Token.BEGIN_ARRAY) {
        return JsonUtils.jsonToPoint(reader, scale);
      } else if (token == JsonReader.Token.BEGIN_OBJECT) {
        return JsonUtils.jsonToPoint(reader, scale);
      } else if (token == JsonReader.Token.NUMBER) {
        // This is the case where the static value for a property is an array of numbers.
        // We begin the array to see if we have an array of keyframes but it's just an array
        // of static numbers instead.
        PointF point = new PointF((float) reader.nextDouble() * scale, (float) reader.nextDouble() * scale);
        while (reader.hasNext()) {
          reader.skipValue();
        }
        return point;
      } else {
        throw new IllegalArgumentException("Cannot convert json to point. Next token is " + token);
      }
    }
  }
  