项目: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 举报,一经查实,本站将立刻删除。