// TODO - cleanup redundancies
public static List<JSONObject> constructRokuNativeElements(JSONObject elementObj) {
		List<JSONObject> elements = new ArrayList<>();
		JSONArray valueArr = (JSONArray) elementObj.get("value");
		if (valueArr == null) {
			return elements;
		}
		for (int i = 0; i < valueArr.size(); i++) {
			String[] boundsComponents = { "0", "0", "0", "0" };
			String text = "";
			JSONObject valueObj = (JSONObject) valueArr.get(i);
			JSONArray attrArr = (JSONArray) valueObj.get("Attrs");
			for (int i2 = 0; i2 < attrArr.size(); i2++) {
				JSONObject attrObj = (JSONObject) attrArr.get(i2);
				JSONObject nameObj = (JSONObject) attrObj.get("Name");
				if (nameObj.containsValue("bounds")) {
					String boundsStr = (String) attrObj.get("Value");
					boundsStr = boundsStr.replace("{", "").replace("}", "");
					boundsComponents = boundsStr.split(", ");
				}
				if (nameObj.containsValue("text")) {
					text = (String) attrObj.get("Value");
				}
			}
			elements.add(constructRokuNativeElementJSON(elementObj, text, boundsComponents));
		}
		return elements;
	}
public static List<JSONObject> constructRokuNativeElements(JSONObject elementObj) {
List<JSONObject> elements = new ArrayList<>();
JSONArray valueArr = (JSONArray) elementObj.get("value");
if (valueArr == null) {
return elements;
}
for (int i = 0; i < valueArr.size(); i++) {
String[] boundsComponents = { "0", "0", "0", "0" };
String text = "";
JSONObject valueObj = (JSONObject) valueArr.get(i);
JSONArray attrArr = (JSONArray) valueObj.get("Attrs");
for (int i2 = 0; i2 < attrArr.size(); i2++) {
JSONObject attrObj = (JSONObject) attrArr.get(i2);
JSONObject nameObj = (JSONObject) attrObj.get("Name");
if (nameObj.containsValue("bounds")) {
String boundsStr = (String) attrObj.get("Value");
boundsStr = boundsStr.replace("{", "").replace("}", "");
boundsComponents = boundsStr.split(", ");
}
if (nameObj.containsValue("text")) {
text = (String) attrObj.get("Value");
}
}
elements.add(constructRokuNativeElementJSON(elementObj, text, boundsComponents));
}
return elements;
}
public static List<JSONObject> constructRokuNativeElements(JSONObject elementObj) {
List<JSONObject> elements = new ArrayList<>();
JSONArray valueArr = (JSONArray) elementObj.get("value");
if (valueArr == null) {
return elements;
}
for (int i = 0; i < valueArr.size(); i++) {
String[] boundsComponents = { "0", "0", "0", "0" };
String text = "";
JSONObject valueObj = (JSONObject) valueArr.get(i);
JSONArray attrArr = (JSONArray) valueObj.get("Attrs");
for (int i2 = 0; i2 < attrArr.size(); i2++) {
JSONObject attrObj = (JSONObject) attrArr.get(i2);
JSONObject nameObj = (JSONObject) attrObj.get("Name");
if (nameObj.containsValue("bounds")) {
String boundsStr = (String) attrObj.get("Value");
boundsStr = boundsStr.replace("{", "").replace("}", "");
boundsComponents = boundsStr.split(", ");
}
if (nameObj.containsValue("text")) {
text = (String) attrObj.get("Value");
}
}
elements.add(constructRokuNativeElementJSON(elementObj, text, boundsComponents));
}
return elements;
}
public static List<JSONObject> constructRokuNativeElements(JSONObject elementObj) {
List<JSONObject> elements = new ArrayList<>();
JSONArray valueArr = (JSONArray) elementObj.get("value");
if (valueArr == null) {
return elements;
}
for (int i = 0; i < valueArr.size(); i++) {
String[] boundsComponents = { "0", "0", "0", "0" };
String text = "";
JSONObject valueObj = (JSONObject) valueArr.get(i);
JSONArray attrArr = (JSONArray) valueObj.get("Attrs");
for (int i2 = 0; i2 < attrArr.size(); i2++) {
JSONObject attrObj = (JSONObject) attrArr.get(i2);
JSONObject nameObj = (JSONObject) attrObj.get("Name");
if (nameObj.containsValue("bounds")) {
String boundsStr = (String) attrObj.get("Value");
boundsStr = boundsStr.replace("{", "").replace("}", "");
boundsComponents = boundsStr.split(", ");
}
if (nameObj.containsValue("text")) {
text = (String) attrObj.get("Value");
}
}
elements.add(constructRokuNativeElementJSON(elementObj, text, boundsComponents));
}
return elements;
}