package com.castlabs.reactnative.utils;

import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableType;
import java.util.Optional;

public class JsonArray {
  private final ReadableArray array;

  public JsonArray(ReadableArray array) {
    this.array = array;
  }

  public Optional<JsonMap> getMap(int index) {
    Optional<JsonMap> result = Optional.empty();

    if (
        (index >= 0 && index < array.size()) &&
        array.getType(index) == ReadableType.Map &&
        !array.isNull(index)
    ) {
      result = Optional.of(new JsonMap(array.getMap(index)));
    }

    return result;
  }

  public int size() {
    return array.size();
  }
}
