Fix tests broken by r1078.

This commit is contained in:
Jesse Wilson 2011-12-16 14:12:34 +00:00
parent 8fcbd57e59
commit c01fc5c935

View File

@ -677,15 +677,20 @@ public final class TypeAdapters {
}
}
public static final TypeAdapter.Factory ENUM_FACTORY = newEnumTypeHierarchyFactory(Enum.class);
public static final TypeAdapter.Factory ENUM_FACTORY = newEnumTypeHierarchyFactory();
public static <TT> TypeAdapter.Factory newEnumTypeHierarchyFactory(final Class<TT> clazz) {
public static <TT> TypeAdapter.Factory newEnumTypeHierarchyFactory() {
return new TypeAdapter.Factory() {
@SuppressWarnings({"rawtypes", "unchecked"})
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> typeToken) {
Class<? super T> rawType = typeToken.getRawType();
return clazz.isAssignableFrom(rawType)
? (TypeAdapter<T>) new EnumTypeAdapter(rawType) : null;
if (!Enum.class.isAssignableFrom(rawType) || rawType == Enum.class) {
return null;
}
if (!rawType.isEnum()) {
rawType = rawType.getSuperclass(); // handle anonymous subclasses
}
return (TypeAdapter<T>) new EnumTypeAdapter(rawType);
}
};
}