content: package com.airbnb.lottie;
  
  import android.graphics.PointF;
  
  import org.json.JSONObject;
  
  class PolystarShape {
    enum Type {
      Star(1),
      Polygon(2);
  
      private final int value;
  
      Type(int value) {
        this.value = value;
      }
  
      static Type forValue(int value) {
        for (Type type : Type.values()) {
          if (type.value == value) {
            return type;
          }
        }
        return null;
      }
    }
  
    private final Type type;
    private final AnimatableFloatValue points;
    private final AnimatableValue<PointF> position;
    private final AnimatableFloatValue rotation;
    private final AnimatableFloatValue innerRadius;
    private final AnimatableFloatValue outerRadius;
    private final AnimatableFloatValue innerRoundedness;
    private final AnimatableFloatValue outerRoundedness;
  
    private PolystarShape(Type type, AnimatableFloatValue points, AnimatableValue<PointF> position,
        AnimatableFloatValue rotation, AnimatableFloatValue innerRadius,
        AnimatableFloatValue outerRadius, AnimatableFloatValue innerRoundedness,
        AnimatableFloatValue outerRoundedness) {
      this.type = type;
      this.points = points;
      this.position = position;
      this.rotation = rotation;
      this.innerRadius = innerRadius;
      this.outerRadius = outerRadius;
      this.innerRoundedness = innerRoundedness;
      this.outerRoundedness = outerRoundedness;
    }
  
    static class Factory {
      private Factory() {
      }
  
      static PolystarShape newInstance(JSONObject json, LottieComposition composition) {
        Type type = Type.forValue(json.optInt("sy"));
        AnimatableFloatValue points =
            AnimatableFloatValue.Factory.newInstance(json.optJSONObject("pt"), composition, false);
        AnimatableValue<PointF> position = AnimatablePathValue.createAnimatablePathOrSplitDimensionPath(
            json.optJSONObject("p"), composition);
        AnimatableFloatValue rotation =
            AnimatableFloatValue.Factory.newInstance(json.optJSONObject("r"), composition, false);
        AnimatableFloatValue outerRadius =
            AnimatableFloatValue.Factory.newInstance(json.optJSONObject("or"), composition);
        AnimatableFloatValue outerRoundedness =
            AnimatableFloatValue.Factory.newInstance(json.optJSONObject("os"), composition, false);
        AnimatableFloatValue innerRadius;
        AnimatableFloatValue innerRoundedness;
  
        if (type == Type.Star) {
          innerRadius =
              AnimatableFloatValue.Factory.newInstance(json.optJSONObject("ir"), composition);
          innerRoundedness =
              AnimatableFloatValue.Factory.newInstance(json.optJSONObject("is"), composition, false);
        } else {
          innerRadius = null;
          innerRoundedness = null;
        }
        return new PolystarShape(type, points, position, rotation, innerRadius, outerRadius,
            innerRoundedness, outerRoundedness);
      }
    }
  
    Type getType() {
      return type;
    }
  
    AnimatableFloatValue getPoints() {
      return points;
    }
  
    AnimatableValue<PointF> getPosition() {
      return position;
    }
  
    AnimatableFloatValue getRotation() {
      return rotation;
    }
  
    AnimatableFloatValue getInnerRadius() {
      return innerRadius;
    }
  
    AnimatableFloatValue getOuterRadius() {
      return outerRadius;
    }
  
    AnimatableFloatValue getInnerRoundedness() {
      return innerRoundedness;
    }
  
    AnimatableFloatValue getOuterRoundedness() {
      return outerRoundedness;
    }
  }
  