content: package com.airbnb.lottie;
  
  import android.graphics.Path;
  
  import org.json.JSONObject;
  
  import java.util.List;
  
  class AnimatableShapeValue extends BaseAnimatableValue<ShapeData, Path> {
    private final Path convertTypePath = new Path();
  
    private AnimatableShapeValue(List<Keyframe<ShapeData>> keyframes, ShapeData initialValue) {
      super(keyframes, initialValue);
    }
  
    @Override public BaseKeyframeAnimation<?, Path> createAnimation() {
      if (!hasAnimation()) {
        return new StaticKeyframeAnimation<>(convertType(initialValue));
      } else {
        return new ShapeKeyframeAnimation(keyframes);
      }
    }
  
    @Override Path convertType(ShapeData shapeData) {
      convertTypePath.reset();
      MiscUtils.getPathFromData(shapeData, convertTypePath);
      return convertTypePath;
    }
  
    static final class Factory {
      private Factory() {
      }
  
      static AnimatableShapeValue newInstance(JSONObject json, LottieComposition composition) {
        AnimatableValueParser.Result<ShapeData> result = AnimatableValueParser
            .newInstance(json, composition.getDpScale(), composition, ShapeData.Factory.INSTANCE)
            .parseJson();
        return new AnimatableShapeValue(result.keyframes, result.initialValue);
      }
    }
  }
  