*/
public class JsonElementValueReader implements ValueReader<JsonElement> {
public Object get(JsonElement source, String memberName) {
if (source.isJsonObject()) {
JsonObject subjObj = source.getAsJsonObject();
JsonElement propertyElement = subjObj.get(memberName);
if (propertyElement == null)
throw new IllegalArgumentException();
if (propertyElement.isJsonObject())
return propertyElement.getAsJsonObject();
if (propertyElement.isJsonArray())
return propertyElement.getAsJsonArray();
if (propertyElement.isJsonPrimitive()) {
JsonPrimitive jsonPrim = propertyElement.getAsJsonPrimitive();
if (jsonPrim.isBoolean())
return jsonPrim.getAsBoolean();
if (jsonPrim.isNumber())
return jsonPrim.getAsNumber();
if (jsonPrim.isString())