package com.google.gson; import com.google.gson.internal.Streams; import com.google.gson.stream.JsonWriter; import java.io.IOException; import java.io.StringWriter; public abstract class JsonElement { public boolean isJsonArray() { return this instanceof JsonArray; } public boolean isJsonObject() { return this instanceof JsonObject; } public boolean isJsonPrimitive() { return this instanceof JsonPrimitive; } public boolean isJsonNull() { return this instanceof JsonNull; } public JsonObject getAsJsonObject() { if (isJsonObject()) { return (JsonObject)this; } throw new IllegalStateException("Not a JSON Object: " + this); } public JsonArray getAsJsonArray() { if (isJsonArray()) { return (JsonArray)this; } throw new IllegalStateException("This is not a JSON Array."); } public JsonPrimitive getAsJsonPrimitive() { if (isJsonPrimitive()) { return (JsonPrimitive)this; } throw new IllegalStateException("This is not a JSON Primitive."); } public boolean getAsBoolean() { throw new UnsupportedOperationException(getClass().getSimpleName()); } Boolean getAsBooleanWrapper() { throw new UnsupportedOperationException(getClass().getSimpleName()); } public Number getAsNumber() { throw new UnsupportedOperationException(getClass().getSimpleName()); } public String getAsString() { throw new UnsupportedOperationException(getClass().getSimpleName()); } public double getAsDouble() { throw new UnsupportedOperationException(getClass().getSimpleName()); } public long getAsLong() { throw new UnsupportedOperationException(getClass().getSimpleName()); } public int getAsInt() { throw new UnsupportedOperationException(getClass().getSimpleName()); } public String toString() { try { StringWriter stringWriter = new StringWriter(); JsonWriter jsonWriter = new JsonWriter(stringWriter); jsonWriter.setLenient(true); Streams.write(this, jsonWriter); return stringWriter.toString(); } catch (IOException e) { throw new AssertionError(e); } } }