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);
}
}
}