Delete dead code found by coverage
This commit is contained in:
parent
38ce53766e
commit
de727d8c48
|
@ -40,12 +40,4 @@ interface Cache<K, V> {
|
||||||
* @return the cached value for the given {@code key}
|
* @return the cached value for the given {@code key}
|
||||||
*/
|
*/
|
||||||
V getElement(K key);
|
V getElement(K key);
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes the value from the cache for the given key.
|
|
||||||
*
|
|
||||||
* @param key the key identifying the value to remove
|
|
||||||
* @return the value for the given {@code key}
|
|
||||||
*/
|
|
||||||
V removeElement(K key);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,6 @@
|
||||||
package com.google.gson;
|
package com.google.gson;
|
||||||
|
|
||||||
import com.google.gson.internal.$Gson$Preconditions;
|
import com.google.gson.internal.$Gson$Preconditions;
|
||||||
import com.google.gson.internal.$Gson$Types;
|
|
||||||
|
|
||||||
import com.google.gson.internal.Pair;
|
import com.google.gson.internal.Pair;
|
||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
@ -50,7 +48,6 @@ public final class FieldAttributes {
|
||||||
private final boolean isSynthetic;
|
private final boolean isSynthetic;
|
||||||
private final int modifiers;
|
private final int modifiers;
|
||||||
private final String name;
|
private final String name;
|
||||||
private final Type resolvedType;
|
|
||||||
|
|
||||||
// Fields used for lazy initialization
|
// Fields used for lazy initialization
|
||||||
private Type genericType;
|
private Type genericType;
|
||||||
|
@ -60,16 +57,14 @@ public final class FieldAttributes {
|
||||||
* Constructs a Field Attributes object from the {@code f}.
|
* Constructs a Field Attributes object from the {@code f}.
|
||||||
*
|
*
|
||||||
* @param f the field to pull attributes from
|
* @param f the field to pull attributes from
|
||||||
* @param declaringType The type in which the field is declared
|
|
||||||
*/
|
*/
|
||||||
FieldAttributes(Class<?> declaringClazz, Field f, Type declaringType) {
|
FieldAttributes(Class<?> declaringClazz, Field f) {
|
||||||
this.declaringClazz = $Gson$Preconditions.checkNotNull(declaringClazz);
|
this.declaringClazz = $Gson$Preconditions.checkNotNull(declaringClazz);
|
||||||
this.name = f.getName();
|
this.name = f.getName();
|
||||||
this.declaredType = f.getType();
|
this.declaredType = f.getType();
|
||||||
this.isSynthetic = f.isSynthetic();
|
this.isSynthetic = f.isSynthetic();
|
||||||
this.modifiers = f.getModifiers();
|
this.modifiers = f.getModifiers();
|
||||||
this.field = f;
|
this.field = f;
|
||||||
this.resolvedType = getTypeInfoForField(f, declaringType);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getMaxCacheSize() {
|
private static int getMaxCacheSize() {
|
||||||
|
@ -121,7 +116,7 @@ public final class FieldAttributes {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the {@code Class<?>} object that was declared for this field.
|
* Returns the {@code Class} object that was declared for this field.
|
||||||
*
|
*
|
||||||
* <p>For example, assume the following class definition:
|
* <p>For example, assume the following class definition:
|
||||||
* <pre class="code">
|
* <pre class="code">
|
||||||
|
@ -185,16 +180,6 @@ public final class FieldAttributes {
|
||||||
return (modifiers & modifier) != 0;
|
return (modifiers & modifier) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This is exposed internally only for the removing synthetic fields from the JSON output.
|
|
||||||
*
|
|
||||||
* @throws IllegalAccessException
|
|
||||||
* @throws IllegalArgumentException
|
|
||||||
*/
|
|
||||||
void set(Object instance, Object value) throws IllegalAccessException {
|
|
||||||
field.set(instance, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is exposed internally only for the removing synthetic fields from the JSON output.
|
* This is exposed internally only for the removing synthetic fields from the JSON output.
|
||||||
*
|
*
|
||||||
|
@ -223,10 +208,6 @@ public final class FieldAttributes {
|
||||||
return field;
|
return field;
|
||||||
}
|
}
|
||||||
|
|
||||||
Type getResolvedType() {
|
|
||||||
return resolvedType;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private static <T extends Annotation> T getAnnotationFromArray(
|
private static <T extends Annotation> T getAnnotationFromArray(
|
||||||
Collection<Annotation> annotations, Class<T> annotation) {
|
Collection<Annotation> annotations, Class<T> annotation) {
|
||||||
|
@ -237,21 +218,4 @@ public final class FieldAttributes {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Evaluates the "actual" type for the field. If the field is a "TypeVariable" or has a
|
|
||||||
* "TypeVariable" in a parameterized type then it evaluates the real type.
|
|
||||||
*
|
|
||||||
* @param f the actual field object to retrieve the type from
|
|
||||||
* @param typeDefiningF the type that contains the field {@code f}
|
|
||||||
* @return the type information for the field
|
|
||||||
*/
|
|
||||||
static Type getTypeInfoForField(Field f, Type typeDefiningF) {
|
|
||||||
Class<?> rawType = $Gson$Types.getRawType(typeDefiningF);
|
|
||||||
if (!f.getDeclaringClass().isAssignableFrom(rawType)) {
|
|
||||||
// this field is unrelated to the type; the user probably omitted type information
|
|
||||||
return f.getGenericType();
|
|
||||||
}
|
|
||||||
return $Gson$Types.resolve(typeDefiningF, rawType, f.getGenericType());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -111,7 +111,7 @@ public final class Gson {
|
||||||
static final SyntheticFieldExclusionStrategy DEFAULT_SYNTHETIC_FIELD_EXCLUSION_STRATEGY =
|
static final SyntheticFieldExclusionStrategy DEFAULT_SYNTHETIC_FIELD_EXCLUSION_STRATEGY =
|
||||||
new SyntheticFieldExclusionStrategy(true);
|
new SyntheticFieldExclusionStrategy(true);
|
||||||
static final ModifierBasedExclusionStrategy DEFAULT_MODIFIER_BASED_EXCLUSION_STRATEGY =
|
static final ModifierBasedExclusionStrategy DEFAULT_MODIFIER_BASED_EXCLUSION_STRATEGY =
|
||||||
new ModifierBasedExclusionStrategy(new int[] { Modifier.TRANSIENT, Modifier.STATIC });
|
new ModifierBasedExclusionStrategy(Modifier.TRANSIENT, Modifier.STATIC);
|
||||||
static final FieldNamingStrategy2 DEFAULT_NAMING_POLICY =
|
static final FieldNamingStrategy2 DEFAULT_NAMING_POLICY =
|
||||||
new SerializedNameAnnotationInterceptingNamingPolicy(new JavaFieldNamingPolicy());
|
new SerializedNameAnnotationInterceptingNamingPolicy(new JavaFieldNamingPolicy());
|
||||||
|
|
||||||
|
@ -209,20 +209,20 @@ public final class Gson {
|
||||||
= new ReflectiveTypeAdapterFactory(constructorConstructor) {
|
= new ReflectiveTypeAdapterFactory(constructorConstructor) {
|
||||||
@Override
|
@Override
|
||||||
public String getFieldName(Class<?> declaringClazz, Field f, Type declaredType) {
|
public String getFieldName(Class<?> declaringClazz, Field f, Type declaredType) {
|
||||||
return fieldNamingPolicy.translateName(new FieldAttributes(declaringClazz, f, declaredType));
|
return fieldNamingPolicy.translateName(new FieldAttributes(declaringClazz, f));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean serializeField(Class<?> declaringClazz, Field f, Type declaredType) {
|
public boolean serializeField(Class<?> declaringClazz, Field f, Type declaredType) {
|
||||||
ExclusionStrategy strategy = Gson.this.serializationExclusionStrategy;
|
ExclusionStrategy strategy = Gson.this.serializationExclusionStrategy;
|
||||||
return !strategy.shouldSkipClass(f.getType())
|
return !strategy.shouldSkipClass(f.getType())
|
||||||
&& !strategy.shouldSkipField(new FieldAttributes(declaringClazz, f, declaredType));
|
&& !strategy.shouldSkipField(new FieldAttributes(declaringClazz, f));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean deserializeField(Class<?> declaringClazz, Field f, Type declaredType) {
|
public boolean deserializeField(Class<?> declaringClazz, Field f, Type declaredType) {
|
||||||
ExclusionStrategy strategy = Gson.this.deserializationExclusionStrategy;
|
ExclusionStrategy strategy = Gson.this.deserializationExclusionStrategy;
|
||||||
return !strategy.shouldSkipClass(f.getType())
|
return !strategy.shouldSkipClass(f.getType())
|
||||||
&& !strategy.shouldSkipField(new FieldAttributes(declaringClazz, f, declaredType));
|
&& !strategy.shouldSkipField(new FieldAttributes(declaringClazz, f));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -254,7 +254,7 @@ public final class Gson {
|
||||||
builder.factory(factory);
|
builder.factory(factory);
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.factory(new GsonToMiniGsonTypeAdapterFactory(this, serializers, deserializers, serializeNulls))
|
builder.factory(new GsonToMiniGsonTypeAdapterFactory(this, serializers, deserializers))
|
||||||
.factory(TypeAdapters.URL_FACTORY)
|
.factory(TypeAdapters.URL_FACTORY)
|
||||||
.factory(TypeAdapters.URI_FACTORY)
|
.factory(TypeAdapters.URI_FACTORY)
|
||||||
.factory(TypeAdapters.UUID_FACTORY)
|
.factory(TypeAdapters.UUID_FACTORY)
|
||||||
|
@ -685,7 +685,7 @@ public final class Gson {
|
||||||
*/
|
*/
|
||||||
public <T> T fromJson(Reader json, Type typeOfT) throws JsonIOException, JsonSyntaxException {
|
public <T> T fromJson(Reader json, Type typeOfT) throws JsonIOException, JsonSyntaxException {
|
||||||
JsonReader jsonReader = new JsonReader(json);
|
JsonReader jsonReader = new JsonReader(json);
|
||||||
T object = this.<T>fromJson(jsonReader, typeOfT);
|
T object = fromJson(jsonReader, typeOfT);
|
||||||
assertFullConsumption(object, jsonReader);
|
assertFullConsumption(object, jsonReader);
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,15 +30,12 @@ final class GsonToMiniGsonTypeAdapterFactory implements TypeAdapter.Factory {
|
||||||
private final ParameterizedTypeHandlerMap<JsonDeserializer<?>> deserializers;
|
private final ParameterizedTypeHandlerMap<JsonDeserializer<?>> deserializers;
|
||||||
private final JsonDeserializationContext deserializationContext;
|
private final JsonDeserializationContext deserializationContext;
|
||||||
private final JsonSerializationContext serializationContext;
|
private final JsonSerializationContext serializationContext;
|
||||||
private final boolean serializeNulls;
|
|
||||||
|
|
||||||
public GsonToMiniGsonTypeAdapterFactory(final Gson gson,
|
public GsonToMiniGsonTypeAdapterFactory(final Gson gson,
|
||||||
ParameterizedTypeHandlerMap<JsonSerializer<?>> serializers,
|
ParameterizedTypeHandlerMap<JsonSerializer<?>> serializers,
|
||||||
ParameterizedTypeHandlerMap<JsonDeserializer<?>> deserializers,
|
ParameterizedTypeHandlerMap<JsonDeserializer<?>> deserializers) {
|
||||||
boolean serializeNulls) {
|
|
||||||
this.serializers = serializers;
|
this.serializers = serializers;
|
||||||
this.deserializers = deserializers;
|
this.deserializers = deserializers;
|
||||||
this.serializeNulls = serializeNulls;
|
|
||||||
|
|
||||||
this.deserializationContext = new JsonDeserializationContext() {
|
this.deserializationContext = new JsonDeserializationContext() {
|
||||||
public <T> T deserialize(JsonElement json, Type typeOfT) throws JsonParseException {
|
public <T> T deserialize(JsonElement json, Type typeOfT) throws JsonParseException {
|
||||||
|
|
|
@ -19,7 +19,6 @@ package com.google.gson;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -74,13 +73,6 @@ public final class JsonArray extends JsonElement implements Iterable<JsonElement
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Reverses the elements of the array.
|
|
||||||
*/
|
|
||||||
void reverse() {
|
|
||||||
Collections.reverse(elements);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the number of elements in the array.
|
* Returns the number of elements in the array.
|
||||||
*
|
*
|
||||||
|
@ -290,22 +282,6 @@ public final class JsonArray extends JsonElement implements Iterable<JsonElement
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* convenience method to get this array as an Object if it contains a single element.
|
|
||||||
*
|
|
||||||
* @return get this element as an Object if it is single element array.
|
|
||||||
* @throws ClassCastException if the element in the array is of not a {@link JsonPrimitive} and
|
|
||||||
* is not a valid Object.
|
|
||||||
* @throws IllegalStateException if the array has more than one element.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
Object getAsObject() {
|
|
||||||
if (elements.size() == 1) {
|
|
||||||
return elements.get(0).getAsObject();
|
|
||||||
}
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
return (o == this) || (o instanceof JsonArray && ((JsonArray) o).elements.equals(elements));
|
return (o == this) || (o instanceof JsonArray && ((JsonArray) o).elements.equals(elements));
|
||||||
|
|
|
@ -306,19 +306,6 @@ public abstract class JsonElement {
|
||||||
throw new UnsupportedOperationException(getClass().getSimpleName());
|
throw new UnsupportedOperationException(getClass().getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* convenience method to get this element as an {@link Object} value.
|
|
||||||
*
|
|
||||||
* @return get this element as an Object value.
|
|
||||||
* @throws ClassCastException if the element is of not a {@link JsonPrimitive} and is not a valid
|
|
||||||
* Object value.
|
|
||||||
* @throws IllegalStateException if the element is of the type {@link JsonArray} but contains
|
|
||||||
* more than a single element.
|
|
||||||
*/
|
|
||||||
Object getAsObject() {
|
|
||||||
throw new UnsupportedOperationException(getClass().getSimpleName());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a deep copy of this. Immutable values can return this.
|
* Returns a deep copy of this. Immutable values can return this.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -275,25 +275,6 @@ public final class JsonPrimitive extends JsonElement {
|
||||||
return getAsString().charAt(0);
|
return getAsString().charAt(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* convenience method to get this element as an Object.
|
|
||||||
*
|
|
||||||
* @return get this element as an Object that can be converted to a suitable value.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
Object getAsObject() {
|
|
||||||
if (value instanceof BigInteger) {
|
|
||||||
BigInteger big = (BigInteger) value;
|
|
||||||
if (big.compareTo(INTEGER_MAX) < 0) {
|
|
||||||
return big.intValue();
|
|
||||||
} else if (big.compareTo(LONG_MAX) < 0) {
|
|
||||||
return big.longValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// No need to convert to float or double since those lose precision
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean isPrimitiveOrString(Object target) {
|
private static boolean isPrimitiveOrString(Object target) {
|
||||||
if (target instanceof String) {
|
if (target instanceof String) {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -46,10 +46,6 @@ final class LruCache<K, V> extends LinkedHashMap<K, V> implements Cache<K, V> {
|
||||||
return get(key);
|
return get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized V removeElement(K key) {
|
|
||||||
return remove(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean removeEldestEntry(Map.Entry<K, V> entry) {
|
protected boolean removeEldestEntry(Map.Entry<K, V> entry) {
|
||||||
return size() > maxCapacity;
|
return size() > maxCapacity;
|
||||||
|
|
|
@ -128,37 +128,6 @@ public final class ParameterizedTypeHandlerMap<T> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized void register(ParameterizedTypeHandlerMap<T> other) {
|
|
||||||
if (!modifiable) {
|
|
||||||
throw new IllegalStateException("Attempted to modify an unmodifiable map.");
|
|
||||||
}
|
|
||||||
for (Map.Entry<Type, T> entry : other.userMap.entrySet()) {
|
|
||||||
register(entry.getKey(), entry.getValue(), false);
|
|
||||||
}
|
|
||||||
for (Map.Entry<Type, T> entry : other.systemMap.entrySet()) {
|
|
||||||
register(entry.getKey(), entry.getValue(), true);
|
|
||||||
}
|
|
||||||
// Quite important to traverse the typeHierarchyList from stack bottom first since
|
|
||||||
// we want to register the handlers in the same order to preserve priority order
|
|
||||||
for (int i = other.userTypeHierarchyList.size()-1; i >= 0; --i) {
|
|
||||||
Pair<Class<?>, T> entry = other.userTypeHierarchyList.get(i);
|
|
||||||
registerForTypeHierarchy(entry, false);
|
|
||||||
}
|
|
||||||
for (int i = other.systemTypeHierarchyList.size()-1; i >= 0; --i) {
|
|
||||||
Pair<Class<?>, T> entry = other.systemTypeHierarchyList.get(i);
|
|
||||||
registerForTypeHierarchy(entry, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public synchronized void registerIfAbsent(Type typeOfT, T value) {
|
|
||||||
if (!modifiable) {
|
|
||||||
throw new IllegalStateException("Attempted to modify an unmodifiable map.");
|
|
||||||
}
|
|
||||||
if (!userMap.containsKey(typeOfT)) {
|
|
||||||
register(typeOfT, value, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public synchronized ParameterizedTypeHandlerMap<T> makeUnmodifiable() {
|
public synchronized ParameterizedTypeHandlerMap<T> makeUnmodifiable() {
|
||||||
modifiable = false;
|
modifiable = false;
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -121,11 +121,6 @@ public final class Streams {
|
||||||
} else if (element.isJsonArray()) {
|
} else if (element.isJsonArray()) {
|
||||||
writer.beginArray();
|
writer.beginArray();
|
||||||
for (JsonElement e : element.getAsJsonArray()) {
|
for (JsonElement e : element.getAsJsonArray()) {
|
||||||
/* always print null when its parent element is an array! */
|
|
||||||
if (e.isJsonNull()) {
|
|
||||||
writer.nullValue();
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
write(e, writer);
|
write(e, writer);
|
||||||
}
|
}
|
||||||
writer.endArray();
|
writer.endArray();
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class DisjunctionExclusionStrategyTest extends TestCase {
|
||||||
|
|
||||||
private static final Class<?> CLAZZ = String.class;
|
private static final Class<?> CLAZZ = String.class;
|
||||||
private static final FieldAttributes FIELD =
|
private static final FieldAttributes FIELD =
|
||||||
new FieldAttributes(CLAZZ, CLAZZ.getFields()[0], CLAZZ);
|
new FieldAttributes(CLAZZ, CLAZZ.getFields()[0]);
|
||||||
|
|
||||||
public void testBadInstantiation() throws Exception {
|
public void testBadInstantiation() throws Exception {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class ExposeAnnotationExclusionStrategyTest extends TestCase {
|
||||||
|
|
||||||
private static FieldAttributes createFieldAttributes(String fieldName) throws Exception {
|
private static FieldAttributes createFieldAttributes(String fieldName) throws Exception {
|
||||||
Field f = MockObject.class.getField(fieldName);
|
Field f = MockObject.class.getField(fieldName);
|
||||||
return new FieldAttributes(MockObject.class, f, MockObject.class);
|
return new FieldAttributes(MockObject.class, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
|
|
@ -36,12 +36,12 @@ public class FieldAttributesTest extends TestCase {
|
||||||
@Override
|
@Override
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
fieldAttributes = new FieldAttributes(Foo.class, Foo.class.getField("bar"), Foo.class);
|
fieldAttributes = new FieldAttributes(Foo.class, Foo.class.getField("bar"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNullField() throws Exception {
|
public void testNullField() throws Exception {
|
||||||
try {
|
try {
|
||||||
new FieldAttributes(Foo.class, null, Foo.class);
|
new FieldAttributes(Foo.class, null);
|
||||||
fail("Field parameter can not be null");
|
fail("Field parameter can not be null");
|
||||||
} catch (NullPointerException expected) { }
|
} catch (NullPointerException expected) { }
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class FieldNamingStrategy2AdapterTest extends TestCase {
|
||||||
FieldNamingStrategy2 adapter =
|
FieldNamingStrategy2 adapter =
|
||||||
new FieldNamingStrategy2Adapter(new UpperCaseNamingStrategy());
|
new FieldNamingStrategy2Adapter(new UpperCaseNamingStrategy());
|
||||||
assertEquals(expectedFieldName, adapter.translateName(
|
assertEquals(expectedFieldName, adapter.translateName(
|
||||||
new FieldAttributes(String.class, field, String.class)));
|
new FieldAttributes(String.class, field)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class UpperCaseNamingStrategy implements FieldNamingStrategy {
|
private static class UpperCaseNamingStrategy implements FieldNamingStrategy {
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class InnerClassExclusionStrategyTest extends TestCase {
|
||||||
|
|
||||||
public void testExcludeInnerClassField() throws Exception {
|
public void testExcludeInnerClassField() throws Exception {
|
||||||
Field f = getClass().getField("innerClass");
|
Field f = getClass().getField("innerClass");
|
||||||
assertTrue(strategy.shouldSkipField(new FieldAttributes(getClass(), f, getClass())));
|
assertTrue(strategy.shouldSkipField(new FieldAttributes(getClass(), f)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testIncludeStaticNestedClassObject() throws Exception {
|
public void testIncludeStaticNestedClassObject() throws Exception {
|
||||||
|
@ -56,7 +56,7 @@ public class InnerClassExclusionStrategyTest extends TestCase {
|
||||||
|
|
||||||
public void testIncludeStaticNestedClassField() throws Exception {
|
public void testIncludeStaticNestedClassField() throws Exception {
|
||||||
Field f = getClass().getField("staticNestedClass");
|
Field f = getClass().getField("staticNestedClass");
|
||||||
assertFalse(strategy.shouldSkipField(new FieldAttributes(getClass(), f, getClass())));
|
assertFalse(strategy.shouldSkipField(new FieldAttributes(getClass(), f)));
|
||||||
}
|
}
|
||||||
|
|
||||||
class InnerClass {
|
class InnerClass {
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class JavaFieldNamingPolicyTest extends TestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testFieldNamingPolicy() throws Exception {
|
public void testFieldNamingPolicy() throws Exception {
|
||||||
FieldAttributes f = new FieldAttributes(String.class, String.class.getFields()[0], String.class);
|
FieldAttributes f = new FieldAttributes(String.class, String.class.getFields()[0]);
|
||||||
assertEquals(f.getName(), namingPolicy.translateName(f));
|
assertEquals(f.getName(), namingPolicy.translateName(f));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -155,7 +155,17 @@ public class ParamterizedTypeFixtures {
|
||||||
Type genericClass = ((ParameterizedType) typeOfT).getActualTypeArguments()[0];
|
Type genericClass = ((ParameterizedType) typeOfT).getActualTypeArguments()[0];
|
||||||
Class<?> rawType = $Gson$Types.getRawType(genericClass);
|
Class<?> rawType = $Gson$Types.getRawType(genericClass);
|
||||||
String className = rawType.getSimpleName();
|
String className = rawType.getSimpleName();
|
||||||
T value = (T) json.getAsJsonObject().get(className).getAsObject();
|
JsonElement jsonElement = json.getAsJsonObject().get(className);
|
||||||
|
|
||||||
|
T value;
|
||||||
|
if (genericClass == Integer.class) {
|
||||||
|
value = (T) Integer.valueOf(jsonElement.getAsInt());
|
||||||
|
} else if (genericClass == String.class) {
|
||||||
|
value = (T) jsonElement.getAsString();
|
||||||
|
} else {
|
||||||
|
value = (T) jsonElement;
|
||||||
|
}
|
||||||
|
|
||||||
if (Primitives.isPrimitive(genericClass)) {
|
if (Primitives.isPrimitive(genericClass)) {
|
||||||
PrimitiveTypeAdapter typeAdapter = new PrimitiveTypeAdapter();
|
PrimitiveTypeAdapter typeAdapter = new PrimitiveTypeAdapter();
|
||||||
value = (T) typeAdapter.adaptType(value, rawType);
|
value = (T) typeAdapter.adaptType(value, rawType);
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class SerializedNameAnnotationInterceptingNamingPolicyTest extends TestCa
|
||||||
public void testFieldWithAnnotation() throws Exception {
|
public void testFieldWithAnnotation() throws Exception {
|
||||||
String fieldName = "fieldWithAnnotation";
|
String fieldName = "fieldWithAnnotation";
|
||||||
FieldAttributes f = new FieldAttributes(
|
FieldAttributes f = new FieldAttributes(
|
||||||
SomeObject.class, SomeObject.class.getField(fieldName), SomeObject.class);
|
SomeObject.class, SomeObject.class.getField(fieldName));
|
||||||
|
|
||||||
assertFalse(ANNOTATED_FIELD_NAME.equals(fieldName));
|
assertFalse(ANNOTATED_FIELD_NAME.equals(fieldName));
|
||||||
assertEquals(ANNOTATED_FIELD_NAME, policy.translateName(f));
|
assertEquals(ANNOTATED_FIELD_NAME, policy.translateName(f));
|
||||||
|
@ -48,7 +48,7 @@ public class SerializedNameAnnotationInterceptingNamingPolicyTest extends TestCa
|
||||||
public void testFieldWithoutAnnotation() throws Exception {
|
public void testFieldWithoutAnnotation() throws Exception {
|
||||||
String fieldName = "fieldWithoutAnnotation";
|
String fieldName = "fieldWithoutAnnotation";
|
||||||
FieldAttributes f = new FieldAttributes(
|
FieldAttributes f = new FieldAttributes(
|
||||||
SomeObject.class, SomeObject.class.getField(fieldName), SomeObject.class);
|
SomeObject.class, SomeObject.class.getField(fieldName));
|
||||||
|
|
||||||
assertEquals(fieldName, policy.translateName(f));
|
assertEquals(fieldName, policy.translateName(f));
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ public class VersionExclusionStrategyTest extends TestCase {
|
||||||
VersionExclusionStrategy strategy = new VersionExclusionStrategy(VERSION);
|
VersionExclusionStrategy strategy = new VersionExclusionStrategy(VERSION);
|
||||||
assertFalse(strategy.shouldSkipClass(clazz));
|
assertFalse(strategy.shouldSkipClass(clazz));
|
||||||
|
|
||||||
FieldAttributes fieldAttributes = new FieldAttributes(clazz, f, clazz);
|
FieldAttributes fieldAttributes = new FieldAttributes(clazz, f);
|
||||||
assertFalse(strategy.shouldSkipField(fieldAttributes));
|
assertFalse(strategy.shouldSkipField(fieldAttributes));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ public class VersionExclusionStrategyTest extends TestCase {
|
||||||
VersionExclusionStrategy strategy = new VersionExclusionStrategy(VERSION + 1);
|
VersionExclusionStrategy strategy = new VersionExclusionStrategy(VERSION + 1);
|
||||||
assertFalse(strategy.shouldSkipClass(clazz));
|
assertFalse(strategy.shouldSkipClass(clazz));
|
||||||
|
|
||||||
FieldAttributes fieldAttributes = new FieldAttributes(clazz, f, clazz);
|
FieldAttributes fieldAttributes = new FieldAttributes(clazz, f);
|
||||||
assertFalse(strategy.shouldSkipField(fieldAttributes));
|
assertFalse(strategy.shouldSkipField(fieldAttributes));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ public class VersionExclusionStrategyTest extends TestCase {
|
||||||
VersionExclusionStrategy strategy = new VersionExclusionStrategy(VERSION - 1);
|
VersionExclusionStrategy strategy = new VersionExclusionStrategy(VERSION - 1);
|
||||||
assertTrue(strategy.shouldSkipClass(clazz));
|
assertTrue(strategy.shouldSkipClass(clazz));
|
||||||
|
|
||||||
FieldAttributes fieldAttributes = new FieldAttributes(clazz, f, clazz);
|
FieldAttributes fieldAttributes = new FieldAttributes(clazz, f);
|
||||||
assertTrue(strategy.shouldSkipField(fieldAttributes));
|
assertTrue(strategy.shouldSkipField(fieldAttributes));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ public class ParameterizedTypesTest extends TestCase {
|
||||||
MyParameterizedType<Integer> src = new MyParameterizedType<Integer>(10);
|
MyParameterizedType<Integer> src = new MyParameterizedType<Integer>(10);
|
||||||
String json = MyParameterizedTypeAdapter.<Integer>getExpectedJson(src);
|
String json = MyParameterizedTypeAdapter.<Integer>getExpectedJson(src);
|
||||||
MyParameterizedType<Integer> intTarget = gson.fromJson(json, ptIntegerType);
|
MyParameterizedType<Integer> intTarget = gson.fromJson(json, ptIntegerType);
|
||||||
assertEquals(10, ((Number)intTarget.value).intValue());
|
assertEquals(10, intTarget.value.intValue());
|
||||||
|
|
||||||
MyParameterizedType<String> srcStr = new MyParameterizedType<String>("abc");
|
MyParameterizedType<String> srcStr = new MyParameterizedType<String>("abc");
|
||||||
json = MyParameterizedTypeAdapter.<String>getExpectedJson(srcStr);
|
json = MyParameterizedTypeAdapter.<String>getExpectedJson(srcStr);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user