Converted CharacterTypeAdapter to the new style.
This commit is contained in:
parent
882c14a367
commit
b5f8ef6e16
@ -47,7 +47,6 @@ final class DefaultTypeAdapters {
|
|||||||
private static final DefaultTimestampDeserializer TIMESTAMP_DESERIALIZER =
|
private static final DefaultTimestampDeserializer TIMESTAMP_DESERIALIZER =
|
||||||
new DefaultTimestampDeserializer();
|
new DefaultTimestampDeserializer();
|
||||||
|
|
||||||
private static final CharacterTypeAdapter CHARACTER_TYPE_ADAPTER = new CharacterTypeAdapter();
|
|
||||||
private static final NumberTypeAdapter NUMBER_TYPE_ADAPTER = new NumberTypeAdapter();
|
private static final NumberTypeAdapter NUMBER_TYPE_ADAPTER = new NumberTypeAdapter();
|
||||||
|
|
||||||
private static final GregorianCalendarTypeAdapter GREGORIAN_CALENDAR_TYPE_ADAPTER =
|
private static final GregorianCalendarTypeAdapter GREGORIAN_CALENDAR_TYPE_ADAPTER =
|
||||||
@ -74,9 +73,6 @@ final class DefaultTypeAdapters {
|
|||||||
map.register(Calendar.class, GREGORIAN_CALENDAR_TYPE_ADAPTER, true);
|
map.register(Calendar.class, GREGORIAN_CALENDAR_TYPE_ADAPTER, true);
|
||||||
map.register(GregorianCalendar.class, GREGORIAN_CALENDAR_TYPE_ADAPTER, true);
|
map.register(GregorianCalendar.class, GREGORIAN_CALENDAR_TYPE_ADAPTER, true);
|
||||||
|
|
||||||
// Add primitive serializers
|
|
||||||
map.register(char.class, CHARACTER_TYPE_ADAPTER, true);
|
|
||||||
map.register(Character.class, CHARACTER_TYPE_ADAPTER, true);
|
|
||||||
map.register(Number.class, NUMBER_TYPE_ADAPTER, true);
|
map.register(Number.class, NUMBER_TYPE_ADAPTER, true);
|
||||||
|
|
||||||
map.makeUnmodifiable();
|
map.makeUnmodifiable();
|
||||||
@ -93,9 +89,6 @@ final class DefaultTypeAdapters {
|
|||||||
map.register(Calendar.class, GREGORIAN_CALENDAR_TYPE_ADAPTER, true);
|
map.register(Calendar.class, GREGORIAN_CALENDAR_TYPE_ADAPTER, true);
|
||||||
map.register(GregorianCalendar.class, GREGORIAN_CALENDAR_TYPE_ADAPTER, true);
|
map.register(GregorianCalendar.class, GREGORIAN_CALENDAR_TYPE_ADAPTER, true);
|
||||||
|
|
||||||
// Add primitive deserializers
|
|
||||||
map.register(char.class, wrapDeserializer(CHARACTER_TYPE_ADAPTER), true);
|
|
||||||
map.register(Character.class, wrapDeserializer(CHARACTER_TYPE_ADAPTER), true);
|
|
||||||
map.register(Number.class, NUMBER_TYPE_ADAPTER, true);
|
map.register(Number.class, NUMBER_TYPE_ADAPTER, true);
|
||||||
|
|
||||||
map.makeUnmodifiable();
|
map.makeUnmodifiable();
|
||||||
@ -331,21 +324,4 @@ final class DefaultTypeAdapters {
|
|||||||
return NumberTypeAdapter.class.getSimpleName();
|
return NumberTypeAdapter.class.getSimpleName();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class CharacterTypeAdapter
|
|
||||||
implements JsonSerializer<Character>, JsonDeserializer<Character> {
|
|
||||||
public JsonElement serialize(Character src, Type typeOfSrc, JsonSerializationContext context) {
|
|
||||||
return new JsonPrimitive(src);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Character deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
|
|
||||||
throws JsonParseException {
|
|
||||||
return json.getAsCharacter();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return CharacterTypeAdapter.class.getSimpleName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -236,6 +236,7 @@ public final class Gson {
|
|||||||
floatAdapter(serializeSpecialFloatingPointValues)))
|
floatAdapter(serializeSpecialFloatingPointValues)))
|
||||||
.factory(new ExcludedTypeAdapterFactory(
|
.factory(new ExcludedTypeAdapterFactory(
|
||||||
serializationExclusionStrategy, deserializationExclusionStrategy))
|
serializationExclusionStrategy, deserializationExclusionStrategy))
|
||||||
|
.factory(TypeAdapters.CHARACTER_FACTORY)
|
||||||
.factory(TypeAdapters.STRING_FACTORY)
|
.factory(TypeAdapters.STRING_FACTORY)
|
||||||
.factory(TypeAdapters.STRING_BUILDER_FACTORY)
|
.factory(TypeAdapters.STRING_BUILDER_FACTORY)
|
||||||
.factory(TypeAdapters.STRING_BUFFER_FACTORY)
|
.factory(TypeAdapters.STRING_BUFFER_FACTORY)
|
||||||
|
@ -231,6 +231,24 @@ public final class TypeAdapters {
|
|||||||
public static final TypeAdapter.Factory DOUBLE_FACTORY
|
public static final TypeAdapter.Factory DOUBLE_FACTORY
|
||||||
= newFactory(double.class, Double.class, DOUBLE);
|
= newFactory(double.class, Double.class, DOUBLE);
|
||||||
|
|
||||||
|
public static final TypeAdapter<Character> CHARACTER = new TypeAdapter<Character>() {
|
||||||
|
@Override
|
||||||
|
public Character read(JsonReader reader) throws IOException {
|
||||||
|
if (reader.peek() == JsonToken.NULL) {
|
||||||
|
reader.nextNull(); // TODO: does this belong here?
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return reader.nextString().charAt(0);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void write(JsonWriter writer, Character value) throws IOException {
|
||||||
|
writer.value(String.valueOf(value));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public static final TypeAdapter.Factory CHARACTER_FACTORY
|
||||||
|
= newFactory(char.class, Character.class, CHARACTER);
|
||||||
|
|
||||||
public static final TypeAdapter<String> STRING = new TypeAdapter<String>() {
|
public static final TypeAdapter<String> STRING = new TypeAdapter<String>() {
|
||||||
@Override
|
@Override
|
||||||
public String read(JsonReader reader) throws IOException {
|
public String read(JsonReader reader) throws IOException {
|
||||||
|
Loading…
Reference in New Issue
Block a user