inlined typeAdapter and typeHierarchyAdapter methods. Added some documentation for registerTypeHierarchyAdapterFactory.
This commit is contained in:
parent
1794182a56
commit
1c09e24220
@ -62,6 +62,7 @@ import java.util.Map;
|
|||||||
*
|
*
|
||||||
* @author Inderjeet Singh
|
* @author Inderjeet Singh
|
||||||
* @author Joel Leitch
|
* @author Joel Leitch
|
||||||
|
* @author Jesse Wilson
|
||||||
*/
|
*/
|
||||||
public final class GsonBuilder {
|
public final class GsonBuilder {
|
||||||
private Excluder excluder = Excluder.DEFAULT;
|
private Excluder excluder = Excluder.DEFAULT;
|
||||||
@ -93,12 +94,6 @@ public final class GsonBuilder {
|
|||||||
public GsonBuilder() {
|
public GsonBuilder() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: nice documentation
|
|
||||||
public GsonBuilder registerTypeAdapterFactory(TypeAdapter.Factory factory) {
|
|
||||||
factories.add(factory);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configures Gson to enable versioning support.
|
* Configures Gson to enable versioning support.
|
||||||
*
|
*
|
||||||
@ -464,14 +459,19 @@ public final class GsonBuilder {
|
|||||||
factories.add(TreeTypeAdapter.newFactory(typeToken, typeAdapter));
|
factories.add(TreeTypeAdapter.newFactory(typeToken, typeAdapter));
|
||||||
}
|
}
|
||||||
if (typeAdapter instanceof TypeAdapter<?>) {
|
if (typeAdapter instanceof TypeAdapter<?>) {
|
||||||
typeAdapter(TypeToken.get(type), (TypeAdapter)typeAdapter);
|
factories.add(TypeAdapters.newFactory(TypeToken.get(type), (TypeAdapter)typeAdapter));
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: inline this method?
|
/**
|
||||||
private <T> GsonBuilder typeAdapter(TypeToken<T> type, TypeAdapter<T> typeAdapter) {
|
* Register a factory for type adapters. Registering a factory is useful when the type
|
||||||
factories.add(TypeAdapters.newFactory(type, typeAdapter));
|
* adapter needs to be configured based on the type of the field being processed. Gson
|
||||||
|
* is designed to handle a large number of factories, so you should consider registering
|
||||||
|
* them to be at par with registering an individual type adapter.
|
||||||
|
*/
|
||||||
|
public GsonBuilder registerTypeAdapterFactory(TypeAdapter.Factory factory) {
|
||||||
|
factories.add(factory);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -519,17 +519,11 @@ public final class GsonBuilder {
|
|||||||
TreeTypeAdapter.newTypeHierarchyFactory(baseType, typeAdapter));
|
TreeTypeAdapter.newTypeHierarchyFactory(baseType, typeAdapter));
|
||||||
}
|
}
|
||||||
if (typeAdapter instanceof TypeAdapter<?>) {
|
if (typeAdapter instanceof TypeAdapter<?>) {
|
||||||
typeHierarchyAdapter(baseType, (TypeAdapter)typeAdapter);
|
factories.add(TypeAdapters.newTypeHierarchyFactory(baseType, (TypeAdapter)typeAdapter));
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: inline this method?
|
|
||||||
private <T> GsonBuilder typeHierarchyAdapter(Class<T> type, TypeAdapter<T> typeAdapter) {
|
|
||||||
factories.add(TypeAdapters.newTypeHierarchyFactory(type, typeAdapter));
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Section 2.4 of <a href="http://www.ietf.org/rfc/rfc4627.txt">JSON specification</a> disallows
|
* Section 2.4 of <a href="http://www.ietf.org/rfc/rfc4627.txt">JSON specification</a> disallows
|
||||||
* special double values (NaN, Infinity, -Infinity). However,
|
* special double values (NaN, Infinity, -Infinity). However,
|
||||||
|
Loading…
Reference in New Issue
Block a user