package org.dartlang.vm.service.element;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import java.util.ArrayList;
import java.util.List;
/**
* Superclass for all observatory elements.
*/
public class Element {
protected JsonObject json;
public Element(JsonObject json) {
this.json = json;
}
/**
* Return the underlying JSON backing this element.
*/
public JsonObject getJson() {
return json;
}
/**
* Return a specific JSON member as a list of integers.
*/
List<Integer> getListInt(String memberName) {
return jsonArrayToListInt(json.getAsJsonArray(memberName));
}
/**
* Return a specific JSON member as a list of strings.
*/
List<String> getListString(String memberName) {
return jsonArrayToListString(json.getAsJsonArray(memberName));
}
/**
* Return a specific JSON member as a list of list of integers.
*/
List<List<Integer>> getListListInt(String memberName) {
JsonArray array = json.getAsJsonArray(memberName);
int size = array.size();
List<List<Integer>> result = new ArrayList<List<Integer>>();
for (int index = 0; index < size; ++index) {
result.add(jsonArrayToListInt(array.get(index).getAsJsonArray()));
}
return result;
}
private List<Integer> jsonArrayToListInt(JsonArray array) {
int size = array.size();
List<Integer> result = new ArrayList<Integer>();
for (int index = 0; index < size; ++index) {
result.add(array.get(index).getAsInt());
}
return result;
}
private List<String> jsonArrayToListString(JsonArray array) {
int size = array.size();
List<String> result = new ArrayList<String>();
for (int index = 0; index < size; ++index) {
result.add(array.get(index).getAsString());
}
return result;
}
}