mongo/src/org/immutables/mongo/types/TypeAdapters.java
@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")
  @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" ) @ 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 ; }
safe unchecked, typecheck performed by type token equality
safe unchecked typecheck performed by type token equality