@SuppressWarnings("unchecked") // guarded by typeToken.equals() call @Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { boolean matches = exactType != null ? exactType.equals(type) || matchRawType && exactType.getType() == type.getRawType() : hierarchyType.isAssignableFrom(type.getRawType()); return matches ? new TreeTypeAdapter<T>((JsonSerializer<T>) serializer, (JsonDeserializer<T>) deserializer, gson, type, this) : null; } }
? (JsonDeserializer) instance : null; typeAdapter = new TreeTypeAdapter(serializer, deserializer, gson, type, null); } else { throw new IllegalArgumentException("Invalid attempt to bind an instance of "
@Override @SuppressWarnings("unchecked") public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { AnnotatedType detectedType = GenericTypeReflector.annotate(type.getType()); return environment.getInputConverters().stream() .filter(converter -> converter.supports(detectedType)).findFirst() .map(converter -> new ConvertingDeserializer(converter, environment, gson)) .map(deserializer -> new TreeTypeAdapter(null, deserializer, gson, type, this)) .orElse(null); } }
@SuppressWarnings("unchecked") // guarded by typeToken.equals() call @Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { boolean matches = exactType != null ? exactType.equals(type) || matchRawType && exactType.getType() == type.getRawType() : hierarchyType.isAssignableFrom(type.getRawType()); return matches ? new TreeTypeAdapter<T>((JsonSerializer<T>) serializer, (JsonDeserializer<T>) deserializer, gson, type, this) : null; } }
? (JsonDeserializer) instance : null; typeAdapter = new TreeTypeAdapter(serializer, deserializer, gson, type, null); } else { throw new IllegalArgumentException(