com.google.gson.internal.bind.TreeTypeAdapter的实例源码

项目:MyJojoXUtils    文件:GsonBuilder.java   
/**
 * Configures Gson for custom serialization or deserialization. This method combines the
 * registration of an {@link TypeAdapter},{@link InstanceCreator},{@link JsonSerializer},and a
 * {@link JsonDeserializer}. It is best used when a single object {@code typeAdapter} implements
 * all the required interfaces for custom serialization with Gson. If a type adapter was
 * previously registered for the specified {@code type},it is overwritten.
 *
 * <p>This registers the type specified and no other types: you must manually register related
 * types! For example,applications registering {@code boolean.class} should also register {@code
 * Boolean.class}.
 *
 * @param type the type definition for the type adapter being registered
 * @param typeAdapter This object must implement at least one of the {@link TypeAdapter},* {@link InstanceCreator},and a {@link JsonDeserializer} interfaces.
 * @return a reference to this {@code GsonBuilder} object to fulfill the "Builder" pattern
 */
@SuppressWarnings({"unchecked","rawtypes"})
public GsonBuilder registerTypeAdapter(Type type,Object typeAdapter) {
  $Gson$Preconditions.checkArgument(typeAdapter instanceof JsonSerializer<?>
      || typeAdapter instanceof JsonDeserializer<?>
      || typeAdapter instanceof InstanceCreator<?>
      || typeAdapter instanceof TypeAdapter<?>);
  if (typeAdapter instanceof InstanceCreator<?>) {
    instanceCreators.put(type,(InstanceCreator) typeAdapter);
  }
  if (typeAdapter instanceof JsonSerializer<?> || typeAdapter instanceof JsonDeserializer<?>) {
    TypeToken<?> typeToken = TypeToken.get(type);
    factories.add(TreeTypeAdapter.newFactoryWithMatchRawType(typeToken,typeAdapter));
  }
  if (typeAdapter instanceof TypeAdapter<?>) {
    factories.add(TypeAdapters.newFactory(TypeToken.get(type),(TypeAdapter)typeAdapter));
  }
  return this;
}
项目:SteamLib    文件:GsonBuilder.java   
/**
 * Configures Gson for custom serialization or deserialization. This method combines the
 * registration of an {@link TypeAdapter},(TypeAdapter)typeAdapter));
  }
  return this;
}
项目:1797-2017    文件:GsonBuilder.java   
/**
 * Configures Gson for custom serialization or deserialization. This method combines the
 * registration of an {@link TypeAdapter},(TypeAdapter)typeAdapter));
  }
  return this;
}
项目:urmusic-desktop    文件:GsonBuilder.java   
/**
 * Configures Gson for custom serialization or deserialization. This method combines the
 * registration of an {@link TypeAdapter},(TypeAdapter)typeAdapter));
  }
  return this;
}
项目:MyJojoXUtils    文件:GsonBuilder.java   
/**
 * Configures Gson for custom serialization or deserialization for an inheritance type hierarchy.
 * This method combines the registration of a {@link TypeAdapter},{@link JsonSerializer} and
 * a {@link JsonDeserializer}. If a type adapter was previously registered for the specified
 * type hierarchy,it is overridden. If a type adapter is registered for a specific type in
 * the type hierarchy,it will be invoked instead of the one registered for the type hierarchy.
 *
 * @param baseType the class definition for the type adapter being registered for the base class
 *        or interface
 * @param typeAdapter This object must implement at least one of {@link TypeAdapter},*        {@link JsonSerializer} or {@link JsonDeserializer} interfaces.
 * @return a reference to this {@code GsonBuilder} object to fulfill the "Builder" pattern
 * @since 1.7
 */
@SuppressWarnings({"unchecked","rawtypes"})
public GsonBuilder registerTypeHierarchyAdapter(Class<?> baseType,Object typeAdapter) {
  $Gson$Preconditions.checkArgument(typeAdapter instanceof JsonSerializer<?>
      || typeAdapter instanceof JsonDeserializer<?>
      || typeAdapter instanceof TypeAdapter<?>);
  if (typeAdapter instanceof JsonDeserializer || typeAdapter instanceof JsonSerializer) {
    hierarchyFactories.add(0,TreeTypeAdapter.newTypeHierarchyFactory(baseType,typeAdapter));
  }
  if (typeAdapter instanceof TypeAdapter<?>) {
    factories.add(TypeAdapters.newTypeHierarchyFactory(baseType,(TypeAdapter)typeAdapter));
  }
  return this;
}
项目:MyJojoXUtils    文件:GsonBuilder.java   
private void addTypeAdaptersForDate(String datePattern,int dateStyle,int timeStyle,List<TypeAdapterFactory> factories) {
  DefaultDateTypeAdapter dateTypeAdapter;
  if (datePattern != null && !"".equals(datePattern.trim())) {
    dateTypeAdapter = new DefaultDateTypeAdapter(datePattern);
  } else if (dateStyle != DateFormat.DEFAULT && timeStyle != DateFormat.DEFAULT) {
    dateTypeAdapter = new DefaultDateTypeAdapter(dateStyle,timeStyle);
  } else {
    return;
  }

  factories.add(TreeTypeAdapter.newFactory(TypeToken.get(Date.class),dateTypeAdapter));
  factories.add(TreeTypeAdapter.newFactory(TypeToken.get(Timestamp.class),dateTypeAdapter));
  factories.add(TreeTypeAdapter.newFactory(TypeToken.get(java.sql.Date.class),dateTypeAdapter));
}
项目:graphql-spqr    文件:ConvertingAdapterFactory.java   
@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);
}
项目:SteamLib    文件:GsonBuilder.java   
/**
 * Configures Gson for custom serialization or deserialization for an inheritance type hierarchy.
 * This method combines the registration of a {@link TypeAdapter},(TypeAdapter)typeAdapter));
  }
  return this;
}
项目:SteamLib    文件:GsonBuilder.java   
private void addTypeAdaptersForDate(String datePattern,dateTypeAdapter));
}
项目:1797-2017    文件:GsonBuilder.java   
/**
 * Configures Gson for custom serialization or deserialization for an inheritance type hierarchy.
 * This method combines the registration of a {@link TypeAdapter},(TypeAdapter)typeAdapter));
  }
  return this;
}
项目:1797-2017    文件:GsonBuilder.java   
private void addTypeAdaptersForDate(String datePattern,dateTypeAdapter));
}
项目:urmusic-desktop    文件:GsonBuilder.java   
/**
 * Configures Gson for custom serialization or deserialization for an inheritance type hierarchy.
 * This method combines the registration of a {@link TypeAdapter},(TypeAdapter)typeAdapter));
  }
  return this;
}
项目:urmusic-desktop    文件:GsonBuilder.java   
private void addTypeAdaptersForDate(String datePattern,dateTypeAdapter));
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


com.google.gson.internal.bind.ArrayTypeAdapter的实例源码
com.google.gson.JsonSyntaxException的实例源码
com.google.gson.JsonDeserializer的实例源码
com.google.gson.internal.ConstructorConstructor的实例源码
com.google.gson.JsonPrimitive的实例源码
com.google.gson.LongSerializationPolicy的实例源码
com.google.gson.internal.GsonInternalAccess的实例源码
com.google.gson.JsonIOException的实例源码
com.google.gson.internal.StringMap的实例源码
com.google.gson.JsonObject的实例源码
com.google.gson.internal.bind.TimeTypeAdapter的实例源码
com.google.gson.FieldAttributes的实例源码
com.google.gson.internal.bind.TreeTypeAdapter的实例源码
com.google.gson.internal.LinkedHashTreeMap的实例源码
com.google.gson.TypeAdapterFactory的实例源码
com.google.gson.JsonSerializer的实例源码
com.google.gson.FieldNamingPolicy的实例源码
com.google.gson.JsonElement的实例源码
com.google.gson.internal.JsonReaderInternalAccess的实例源码
com.google.gson.TypeAdapter的实例源码