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 =
|
||||
new DefaultTimestampDeserializer();
|
||||
|
||||
private static final CharacterTypeAdapter CHARACTER_TYPE_ADAPTER = new CharacterTypeAdapter();
|
||||
private static final NumberTypeAdapter NUMBER_TYPE_ADAPTER = new NumberTypeAdapter();
|
||||
|
||||
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(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.makeUnmodifiable();
|
||||
@ -93,9 +89,6 @@ final class DefaultTypeAdapters {
|
||||
map.register(Calendar.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.makeUnmodifiable();
|
||||
@ -331,21 +324,4 @@ final class DefaultTypeAdapters {
|
||||
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)))
|
||||
.factory(new ExcludedTypeAdapterFactory(
|
||||
serializationExclusionStrategy, deserializationExclusionStrategy))
|
||||
.factory(TypeAdapters.CHARACTER_FACTORY)
|
||||
.factory(TypeAdapters.STRING_FACTORY)
|
||||
.factory(TypeAdapters.STRING_BUILDER_FACTORY)
|
||||
.factory(TypeAdapters.STRING_BUFFER_FACTORY)
|
||||
|
@ -231,6 +231,24 @@ public final class TypeAdapters {
|
||||
public static final TypeAdapter.Factory DOUBLE_FACTORY
|
||||
= 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>() {
|
||||
@Override
|
||||
public String read(JsonReader reader) throws IOException {
|
||||
|
Loading…
Reference in New Issue
Block a user