inner_classes.addAll(ClassUtil.getGenericTypes(field_handle));
Collections.reverse(inner_classes);
JSONArray json_inner = json_object.getJSONArray(json_key);
if (json_inner == null)
throw new JSONException("No array exists for '" + json_key + "'");
readCollectionField(json_inner, catalog_db, (Collection) field_object, inner_classes);
// Maps
} else if (field_object instanceof Map) {
if (debug.val)
LOG.debug("Field " + json_key + " is a map");
assert (field_object != null);
Stack<Class<?>> inner_classes = new Stack<Class<?>>();
inner_classes.addAll(ClassUtil.getGenericTypes(field_handle));
Collections.reverse(inner_classes);
JSONObject json_inner = json_object.getJSONObject(json_key);
if (json_inner == null)
throw new JSONException("No object exists for '" + json_key + "'");
readMapField(json_inner, catalog_db, (Map) field_object, inner_classes);
// Everything else...
} else {
Class<?> explicit_field_class = JSONUtil.getClassForField(json_object, json_key);