@SuppressWarnings("unchecked") @Override @Nullable public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { if (ID_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) WRAPPED_ID_ADAPTER; } if (TIME_INSTANT_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) WRAPPED_TIME_INSTANT_ADAPTER; } if (BINARY_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) WRAPPED_BINARY_ADAPTER; } if (PATTERN_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) PATTERN_ADAPTER; } if (DECIMAL128_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) DECIMAL128_ADAPTER; } return null; }
@SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal @Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { return typeToken.equals(type) ? (TypeAdapter<T>) typeAdapter : 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; } }
@SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal @Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { return typeToken.equals(type) ? (TypeAdapter<T>) typeAdapter : null; } };
@SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { return typeToken.equals(type) ? (TypeAdapter<T>) typeAdapter : null; } };
@SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { return typeToken.equals(type) ? (TypeAdapter<T>) typeAdapter : null; } };
@SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal @Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { return typeToken.equals(type) ? (TypeAdapter<T>) typeAdapter : null; } };
@SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { return typeToken.equals(type) ? (TypeAdapter<T>) typeAdapter : null; } };
@SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { return typeToken.equals(type) ? (TypeAdapter<T>) typeAdapter : null; } };
@SuppressWarnings("unchecked") // we use a runtime check to make sure the 'T's equal public <T> TypeAdapter<T> create(MiniGson context, TypeToken<T> typeToken) { return typeToken.equals(type) ? (TypeAdapter<T>) typeAdapter : null; } };
@SuppressWarnings("unchecked") @Override @Nullable public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) { if (ID_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) WRAPPED_ID_ADAPTER; } if (TIME_INSTANT_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) WRAPPED_TIME_INSTANT_ADAPTER; } if (BINARY_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) WRAPPED_BINARY_ADAPTER; } if (PATTERN_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) PATTERN_ADAPTER; } if (DECIMAL128_TYPE_TOKEN.equals(type)) { return (TypeAdapter<T>) DECIMAL128_ADAPTER; } return null; }
public PolymorphicTypeAdapterFactory typeName(TypeToken<?> type, String name) { typeNames.put(type, name); matchingTypes.add(type); Class<?> rawClass = type.getRawType(); TypeToken<?> rawType = TypeToken.get(rawClass); if (!rawType.equals(type)) { matchingTypes.add(rawType); } return this; }
@SuppressWarnings("unchecked") // guarded by typeToken.equals() call 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; } }
@SuppressWarnings("unchecked") // guarded by typeToken.equals() call 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; } }
@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; } }
@SuppressWarnings("unchecked") // guarded by typeToken.equals() call 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; } }
@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; } }
@SuppressWarnings("unchecked") // guarded by typeToken.equals() call 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; } }
@SuppressWarnings({ "unused", "unchecked" }) @Override public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) { Type type = typeToken.getType(); Class<? super T> rawType = typeToken.getRawType(); if (!PropertiesTypeAdapter.TOKEN.equals(typeToken)) { return null; } return (TypeAdapter<T>) new PropertiesTypeAdapter(gson); }
@Override public final <T1> TypeAdapter<T1> create(final Gson gson, final TypeToken<T1> typeToken) { final boolean shouldHandleThisType; if (isRawType(this.typeToken)) { // If this adapter specifies that it supports a raw type, we will treat the candidate type as a raw type as well shouldHandleThisType = this.typeToken.getType().equals(typeToken.getRawType()); } else { shouldHandleThisType = this.typeToken.equals(typeToken); } // Return null if the type is not what this factory is meant to produce, so that Gson knows we can't handle that type if (!shouldHandleThisType) { return null; } //noinspection unchecked return (TypeAdapter<T1>) buildAdapter(gson); }