From 559e3a22ea6ad89199211b502c1fddf2ad92a26c Mon Sep 17 00:00:00 2001 From: jwilson Date: Sat, 4 Feb 2017 14:22:24 -0500 Subject: [PATCH] Use readJsonValue() in DefaultOnDataMismatchAdapter. --- .../moshi/recipes/DefaultOnDataMismatchAdapter.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/examples/src/main/java/com/squareup/moshi/recipes/DefaultOnDataMismatchAdapter.java b/examples/src/main/java/com/squareup/moshi/recipes/DefaultOnDataMismatchAdapter.java index c7082e4..7142ea8 100644 --- a/examples/src/main/java/com/squareup/moshi/recipes/DefaultOnDataMismatchAdapter.java +++ b/examples/src/main/java/com/squareup/moshi/recipes/DefaultOnDataMismatchAdapter.java @@ -28,20 +28,17 @@ import java.util.Set; public final class DefaultOnDataMismatchAdapter extends JsonAdapter { private final JsonAdapter delegate; private final T defaultValue; - private final JsonAdapter objectAdapter; - private DefaultOnDataMismatchAdapter(JsonAdapter delegate, T defaultValue, - JsonAdapter objectAdapter) { + private DefaultOnDataMismatchAdapter(JsonAdapter delegate, T defaultValue) { this.delegate = delegate; this.defaultValue = defaultValue; - this.objectAdapter = objectAdapter; } @Override public T fromJson(JsonReader reader) throws IOException { // Read the value first so that the reader will be in a known state even if there's an // exception. Otherwise it may be awkward to recover: it might be between calls to // beginObject() and endObject() for example. - Object jsonValue = objectAdapter.fromJson(reader); + Object jsonValue = reader.readJsonValue(); // Use the delegate to convert the JSON value to the target type. try { @@ -60,9 +57,8 @@ public final class DefaultOnDataMismatchAdapter extends JsonAdapter { @Override public JsonAdapter create( Type requestedType, Set annotations, Moshi moshi) { if (type != requestedType) return null; - JsonAdapter objectAdapter = moshi.adapter(Object.class); JsonAdapter delegate = moshi.nextAdapter(this, type, annotations); - return new DefaultOnDataMismatchAdapter<>(delegate, defaultValue, objectAdapter); + return new DefaultOnDataMismatchAdapter<>(delegate, defaultValue); } }; }