From c7a690809323b61163a98bd08e76718ad1117a81 Mon Sep 17 00:00:00 2001 From: Scott Kyle Date: Wed, 29 Apr 2020 08:25:11 -0700 Subject: [PATCH] Add API to retrieve Java Object from Flipper objects Summary: There's no existing API on the Flipper objects to get an arbitrary Java object, which we need in an inspector plugin we're building (`getDynamic` requires you to know what you want in the end). Reviewed By: jknoxville Differential Revision: D21223329 fbshipit-source-id: 29e9f8788be404cec44c6ddeb6b56b939b97b766 --- .../java/com/facebook/flipper/core/FlipperArray.java | 12 ++++++++++++ .../com/facebook/flipper/core/FlipperObject.java | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/android/src/main/java/com/facebook/flipper/core/FlipperArray.java b/android/src/main/java/com/facebook/flipper/core/FlipperArray.java index b4e5e3fbf..bd770d01b 100644 --- a/android/src/main/java/com/facebook/flipper/core/FlipperArray.java +++ b/android/src/main/java/com/facebook/flipper/core/FlipperArray.java @@ -67,6 +67,18 @@ public class FlipperArray { return new FlipperArray((JSONArray) o); } + public Object get(int index) { + final Object o = mJson.opt(index); + + if (o instanceof JSONObject) { + return new FlipperObject((JSONObject) o); + } else if (o instanceof JSONArray) { + return new FlipperArray((JSONArray) o); + } else { + return o; + } + } + public int length() { return mJson.length(); } diff --git a/android/src/main/java/com/facebook/flipper/core/FlipperObject.java b/android/src/main/java/com/facebook/flipper/core/FlipperObject.java index aa2cf23c3..985486ead 100644 --- a/android/src/main/java/com/facebook/flipper/core/FlipperObject.java +++ b/android/src/main/java/com/facebook/flipper/core/FlipperObject.java @@ -69,6 +69,18 @@ public class FlipperObject { return new FlipperArray((JSONArray) o); } + public Object get(String name) { + final Object o = mJson.opt(name); + + if (o instanceof JSONObject) { + return new FlipperObject((JSONObject) o); + } else if (o instanceof JSONArray) { + return new FlipperArray((JSONArray) o); + } else { + return o; + } + } + public boolean contains(String name) { return mJson.has(name); }