@SuppressWarnings({ "unchecked" }) @Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { if (!Throwable.class.isAssignableFrom(typeToken.getRawType())) return null; return (TypeAdapter<T>) new ThrowableTypeAdapter((TypeToken<Throwable>) typeToken); }
@Override public void write(JsonWriter out, Throwable throwable) throws IOException { if (throwable == null) { out.nullValue(); } else if (throwable.getMessage() == null && throwable.getCause() != null) { write(out, throwable.getCause()); } else { out.beginObject(); if (throwable.getMessage() != null) { out.name("message"); out.value(throwable.getMessage()); } if (shouldWriteCause(throwable)) { out.name("cause"); write(out, throwable.getCause()); } out.endObject(); } }
cause = read(in); break;
cause = read(in); break;
@Override public void write(JsonWriter out, Throwable throwable) throws IOException { if (throwable == null) { out.nullValue(); } else if (throwable.getMessage() == null && throwable.getCause() != null) { write(out, throwable.getCause()); } else { out.beginObject(); if (throwable.getMessage() != null) { out.name("message"); out.value(throwable.getMessage()); } if (shouldWriteCause(throwable)) { out.name("cause"); write(out, throwable.getCause()); } out.endObject(); } }
@SuppressWarnings({ "unchecked" }) @Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { if (!Throwable.class.isAssignableFrom(typeToken.getRawType())) return null; return (TypeAdapter<T>) new ThrowableTypeAdapter((TypeToken<Throwable>) typeToken); }